mcpField
D
distributing-tauri-for-windows

distributing-tauri-for-windows

github.com/dchuk開発36232 回インストール40 週間前に更新
リポジトリ

distributing-tauri-for-windows について

Tauri v2 開発者向けの Windows 配布ガイドです。MSI と NSIS のビルド、インストーラーの設定・カスタマイズ、Microsoft Store への申請を扱います。

主な機能

  1. 01MSI と NSIS インストーラーのビルド
  2. 02WebView2 のインストール方式設定
  3. 03WiX と NSIS インストーラーのカスタマイズ
  4. 04インストーラーの言語設定
  5. 05コード署名とタイムスタンプの設定
  6. 06Microsoft Store リリースの準備

活用シーン

  1. 01Tauri アプリの Windows 向けパッケージ作成
  2. 02Linux または macOS での NSIS ビルド
  3. 03オフラインや企業向け配布での WebView2 設定
  4. 04Tauri アプリの Store 申請準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dchuk/claude-code-tauri-skills --skill distributing-tauri-for-windows

インストール後、Claude Code で/distributing-tauri-for-windowsを入力して読み込まれたか確認します。

詳細

Windows 向け Tauri アプリケーションの配布

このスキルでは、MSI/NSIS インストーラーの作成とカスタマイズ、Microsoft Store への提出など、Tauri v2 アプリケーションの Windows 向け配布について説明します。

インストーラー形式の概要

Tauri は、次の 2 種類の Windows インストーラー形式に対応しています。

形式拡張子ビルドプラットフォーム備考
WiX MSI.msiWindows のみ従来の Windows インストーラー
NSIS-setup.exeクロスプラットフォームLinux/macOS でもビルドできます

インストーラーのビルド

標準ビルド(Windows)
npm run tauri build
# or
yarn tauri build
# or
pnpm tauri build
# or
cargo tauri build
対象アーキテクチャ
# 64-bit (default)
npm run tauri build -- --target x86_64-pc-windows-msvc

# 32-bit
npm run tauri build -- --target i686-pc-windows-msvc

# ARM64 (requires additional VS build tools)
npm run tauri build -- --target aarch64-pc-windows-msvc
クロスプラットフォーム NSIS ビルド(Linux/macOS)

NSIS インストーラーは Windows 以外のシステムでもビルドできます。

前提条件(Linux):

# Install NSIS and build tools (Debian/Ubuntu)
sudo apt install nsis lld llvm clang

# Install Windows Rust target
rustup target add x86_64-pc-windows-msvc

# Install cargo-xwin
cargo install --locked cargo-xwin

前提条件(macOS):

# Install via Homebrew
brew install nsis llvm

# Add LLVM to PATH
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"

# Install Windows Rust target
rustup target add x86_64-pc-windows-msvc

# Install cargo-xwin
cargo install --locked cargo-xwin

ビルドコマンド:

npm run tauri build -- --runner cargo-xwin --target x86_64-pc-windows-msvc

WebView2 のインストールモード

エンドユーザーのマシンに WebView2 ランタイムをインストールする方法を設定します。

モードインターネット接続サイズへの影響最適な用途
downloadBootstrapper必要0 MBデフォルト。最小サイズのインストーラー
embedBootstrapper必要約 1.8 MBWindows 7 のサポートを強化
offlineInstaller不要約 127 MBオフライン/エアギャップ環境
fixedVersion不要約 180 MB管理されたエンタープライズ環境への展開
skip不要0 MB推奨されません
設定
{
  "bundle": {
    "windows": {
      "webviewInstallMode": {
        "type": "embedBootstrapper"  // or: downloadBootstrapper, offlineInstaller, fixedVersion
      }
    }
  }
}

fixedVersion の場合は、パス "path": "./WebView2Runtime" を追加します。

WiX MSI のカスタマイズ

カスタム WiX テンプレート

デフォルトのテンプレートを置き換えます。

{
  "bundle": {
    "windows": {
      "wix": {
        "template": "./windows/custom-template.wxs"
      }
    }
  }
}
WiX フラグメント

XML フラグメントを使用してカスタム機能を追加します。

1. フラグメントファイルを作成します(src-tauri/windows/fragments/registry.wxs):

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment>
    <ComponentGroup Id="MyFragmentRegistryEntries">
      <Component Id="MyRegistryEntry" Directory="INSTALLDIR">
        <RegistryKey Root="HKCU" Key="Software\MyApp">
          <RegistryValue Type="string" Name="InstallPath" Value="[INSTALLDIR]" KeyPath="yes"/>
        </RegistryKey>
      </Component>
    </ComponentGroup>
  </Fragment>
</Wix>

2. 設定で参照します:

{
  "bundle": {
    "windows": {
      "wix": {
        "fragmentPaths": ["./windows/fragments/registry.wxs"],
        "componentRefs": ["MyFragmentRegistryEntries"]
      }
    }
  }
}
国際化(WiX)
{
  "bundle": {
    "windows": {
      "wix": {
        "language": ["en-US", "fr-FR", "de-DE"],  // Single: "fr-FR"
        "localePath": "./windows/locales"  // Optional: custom locale files
      }
    }
  }
}

NSIS インストーラーのカスタマイズ

インストールモード
モード管理者権限が必要インストール先用途
perUserいいえ%LOCALAPPDATA%デフォルト。昇格不要
perMachineはい%PROGRAMFILES%システム全体へのインストール
bothはいユーザーが選択柔軟な展開
{
  "bundle": {
    "windows": {
      "nsis": {
        "installMode": "perMachine"
      }
    }
  }
}
インストーラーフック

カスタム NSIS スクリプトを使用してインストールを拡張します。

1. フックファイルを作成します(src-tauri/windows/hooks.nsh):

!macro NSIS_HOOK_PREINSTALL
  ; Run before file installation
  DetailPrint "Preparing installation..."
!macroend

!macro NSIS_HOOK_POSTINSTALL
  ; Run after installation completes
  DetailPrint "Configuring application..."
  ; Example: Install VC++ Redistributable
  ReadRegStr $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Installed"
  ${If} $0 != "1"
    ExecWait '"$INSTDIR\vc_redist.x64.exe" /quiet /norestart'
  ${EndIf}
!macroend

!macro NSIS_HOOK_PREUNINSTALL
  ; Run before uninstallation
  DetailPrint "Cleaning up..."
!macroend

!macro NSIS_HOOK_POSTUNINSTALL
  ; Run after uninstallation
  DetailPrint "Removal complete"
!macroend

2. 設定で参照します:

{
  "bundle": {
    "windows": {
      "nsis": {
        "installerHooks": "./windows/hooks.nsh"
      }
    }
  }
}
国際化(NSIS)

NSIS インストーラーは、1 つのファイルで複数の言語に対応できます。

{
  "bundle": {
    "windows": {
      "nsis": {
        "languages": ["English", "French", "German", "Spanish"],
        "displayLanguageSelector": true
      }
    }
  }
}
WebView2 の最小バージョン

特定の WebView2 バージョンを必須にします。

{
  "bundle": {
    "windows": {
      "nsis": {
        "minimumWebview2Version": "110.0.1531.0"
      }
    }
  }
}

完全な設定例

{
  "bundle": {
    "active": true,
    "targets": ["msi", "nsis"],
    "icon": ["icons/icon.ico"],
    "windows": {
      "certificateThumbprint": "YOUR_CERTIFICATE_THUMBPRINT",
      "timestampUrl": "http://timestamp.digicert.com",
      "webviewInstallMode": {
        "type": "embedBootstrapper"
      },
      "wix": {
        "language": ["en-US", "de-DE"],
        "fragmentPaths": ["./windows/fragments/registry.wxs"],
        "componentRefs": ["MyRegistryEntries"]
      },
      "nsis": {
        "installMode": "both",
        "installerHooks": "./windows/hooks.nsh",
        "languages": ["English", "German"],
        "displayLanguageSelector": true,
        "minimumWebview2Version": "110.0.1531.0"
      }
    }
  }
}

特別な設定

Windows 7 のサポート
{
  "bundle": {
    "windows": {
      "webviewInstallMode": {
        "type": "embedBootstrapper"
      }
    }
  }
}

Cargo.toml で Windows 7 の通知サポートを有効にします。

[dependencies]
tauri = { version = "2", features = ["windows7-compat"] }
FIPS 準拠

ビルド前に環境変数を設定します。

PowerShell:

$env:TAURI_BUNDLER_WIX_FIPS_COMPLIANT = "true"
npm run tauri build

コマンドプロンプト:

set TAURI_BUNDLER_WIX_FIPS_COMPLIANT=true
npm run tauri build

Microsoft Store での配布

要件
  1. 開発者登録済みの Microsoft アカウント
  2. WebView2 のオフラインインストーラーモード(Store ポリシーで必須)
  3. 製品名と異なる発行者名
Store 固有の設定

tauri.microsoftstore.conf.json を作成します。

{
  "bundle": {
    "windows": {
      "webviewInstallMode": {
        "type": "offlineInstaller"
      }
    }
  },
  "identifier": "com.yourcompany.yourapp",
  "publisher": "Your Company Name"
}
Store アイコンの生成
npm run tauri icon /path/to/app-icon.png

これにより、Microsoft Store 用アセットを含む、必要なすべてのサイズのアイコンが生成されます。

Store 向けのビルド
npm run tauri build -- --config tauri.microsoftstore.conf.json
提出手順
  1. オフラインインストーラーの設定でビルドします
  2. 有効なコード署名証明書でインストーラーに署名します
  3. Partner Center(Apps and Games)でアプリの掲載情報を作成します
  4. 一意のアプリ名を予約します
  5. インストーラーを配布サービスにアップロードします
  6. Store の掲載情報にインストーラーの URL をリンクします
  7. 認定審査に提出します
発行者名の制約

発行者名を製品名と同じにすることはできません。バンドル識別子が com.myapp.myapp の場合は、異なる発行者名を明示的に設定します。

{
  "identifier": "com.myapp.myapp",
  "publisher": "MyApp Software Inc"
}

コード署名

証明書の拇印を使用する
{
  "bundle": {
    "windows": {
      "certificateThumbprint": "YOUR_CERTIFICATE_THUMBPRINT",
      "timestampUrl": "http://timestamp.digicert.com"
    }
  }
}
環境変数
# Certificate path
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="your-password"

# Or via tauri.conf.json
タイムスタンプサーバー

一般的なタイムスタンプサーバー:

  • DigiCert: http://timestamp.digicert.com
  • Sectigo: http://timestamp.sectigo.com
  • GlobalSign: http://timestamp.globalsign.com/tsa/r6advanced1

トラブルシューティング

Windows 以外で MSI のビルドに失敗する

MSI ファイルは WiX Toolset を使用して Windows 上でのみビルドできます。クロスプラットフォームのビルドには NSIS を使用してください。

WebView2 がインストールされない
  1. WebView のインストールモードの設定を確認します
  2. ブートストラップモードの場合は、インターネット接続を確認します
  3. オフラインモードの場合は、インストーラーのサイズが許容範囲内であることを確認します
NSIS のクロスコンパイルエラー
  1. NSIS がインストールされ、PATH に設定されていることを確認します
  2. LLVM/clang のインストールを確認します
  3. Windows の Rust ターゲットがインストールされていることを確認します
  4. cargo-xwin がインストールされていることを確認します
証明書が見つからない
  1. 証明書が Windows の証明書ストアにインストールされていることを確認します
  2. サムプリントが完全に一致していることを確認します(スペースなし)
  3. 証明書の秘密鍵にアクセスできることを確認します

コメント