0

.MSI簡単なインストーラーをデプロイしています。しかし、テストとして、私は前提条件として置きたかったMicrosoft .Net Framework 4.0ので、私はこれを自分の.wixproj:に書きました

  <ItemGroup>
      <BootstrapperFile Include=".NETFramework,Version=v4.0">
         <ProductName>.NET Framework 4.0</ProductName>
      </BootstrapperFile>
      <Bootstra pperFile Include="Microsoft.Windows.Installer.4.5">
         <ProductName>Windows Installer 4.5</ProductName>
      </BootstrapperFile>
  </ItemGroup>

と:

<Target Name="AfterBuild">
    <GenerateBootstrapper ApplicationFile="InstallTest" ApplicationName="Face Phi Install Test" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\" />
</Target>

そして私の.wxsプロジェクトで私はこれを書きました:

<PropertyRef Id="NETFRAMEWORK40FULL"/>

これは正常に機能.Net Framework 4.0し、前提条件として設定でき、インストールを続行できません。しかし、を生成すると、SetupProject2つのインストーラーが表示されます。

ここに画像の説明を入力してください

  1. InstallTest.msi私が自分の.wxsプロジェクトで生成したものです。二つ目は、どこから来たのかわかりません。インストーラーを1つだけにして、それを前提条件に接続するにはどうすればよいですか?
  2. インストールをキャンセルする代わりに、.Net Frameworkを自動インストールするにはどうすればよいですか?
4

1 に答える 1

2

はビルド タスクsetup.exeによって作成され、要素GenerateBootstrapperによって選択したパッケージをインストールするためのロジックが含まれています。BootstrapperFileただし、これには InstallTest.msi は含まれません。

そのためには、ブートストラップ パッケージを作成する必要があります。これは、msi ファイルといくつかの xml ファイルを含むディレクトリ構造です。例を見てくださいC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages。手動で設計し、ビルド タスクを使用してその Packages フォルダーにコピーできます。Microsoft の非公式ツールであるBootstrapper Manifest Generatorも、パッケージの設計およびコピー時に役立ち、ビルド タスクから呼び出すことができます。

すべてのパッケージをインストールする setup.exe を作成したら、すべてのファイルを WinRAR や WinZip などの自己解凍型アーカイブに入れることをお勧めします。私は非常に基本的な NSIS インストーラーを使用しています。これにより、プロフェッショナルな外観のカスタム ウェルカム スクリーンを作成できるからです。

Visual Studio ブートストラップの代わりに、WiX 3.7 にアップグレードし、WiX Bootstrapperプロジェクト (別名 Burn プロジェクト) を使用します。欠点は、.NET 用のスクリプトがドキュメントに記載されていますが、そのシステムに依存関係をインストールするためのスクリプトがまだ広く利用されていないことです。[トピック「How To: Burn を使用して .NET Framework をインストールする」を参照してください。] Burn の多くの利点の 1 つは、自己解凍アーカイブでもあることです。

于 2013-03-30T17:43:36.980 に答える