2009-07-15 14 views
11

WiXのインストーラに完全な.NET 3.5 sp1インストーラを含める必要があります。完全に自己完結型の.NET 3.5 sp1インストーラを使用してWiXインストーラを作成するにはどうすればよいですか?

私は完全に自己完結型で、Webアクセスが全くないことが必要です。このインストーラがWebを要求することは許されません。モンゴルの外にいるお客様は、インターネットにアクセスできないので、CDを発送する相手には遠いので、地名を使用するだけでなく、真剣です。

のWiXチュートリアル状態:

<Target Name="AfterBuild"> 
    <GenerateBootstrapper ApplicationFile="$(TargetFileName)" 
         ApplicationName="My Application Name" 
         BootstrapperItems="@(BootstrapperFile)" 
         ComponentsLocation="Relative" 
         CopyComponents="True" 
         OutputPath="$(OutputPath)" 
         Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"/> 
</Target> 

上記のブートストラップは、ウェブが必要です。そうでないインストーラを作成するにはどうすればよいですか?あなたのケースでは

答えて

8

<Project ToolsVersion="3.5" 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <ItemGroup> 
     <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" > 
      <ProductName>.NET Framework 3.5 SP1</ProductName> 
     </BootstrapperFile> 
     <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" > 
      <ProductName>Windows Installer 3.1</ProductName> 
     </BootstrapperFile> 
    </ItemGroup> 

    <Target Name="setup"> 
     <GenerateBootstrapper 
      ApplicationFile="myproduct.msi" 
      ApplicationName="myproduct" 
      BootstrapperItems="@(BootstrapperFile)" 
      Path="$(bootstrapperPackagesFolder)" 
      ComponentsLocation="Relative" 
      OutputPath="$(cddir)" 
      Culture="en"/> 
    </Target> 

</Project> 

$(bootstrapperPackagesFolder)変数は、C :\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\を指します。 $(cddir)変数は、インストールCDの内容を作成するフォルダです。

GenerateBootStrapperタスクは、ブートストラップのexeファイルを生成するだけでなく、DotNetFX35SP1WindowsInstaller3_1というフォルダを同じ場所にコピーします。インストール中、ブートストラップのexeは、それらのフォルダを探して、ダウンロードするのではなく、そこのファイルを使用します。

私の例があなたがすでにやっているものと違うかどうかは分かりません。おそらく、インストールCDにDotNetFX35SP1フォルダを含めるのを忘れてしまったでしょうか?

+0

これを実行した後、私は次のエラーを取得する: C:\ DocumentsとSettings \ハドソンを\ .hudson \ジョブ \ワークスペース\メイン\ \ \ SetupWiX \ SetupWiX.wixproj(164,5):エラーMSB3152:前提条件のインストール先が 'コンポーネントベンダーのWebサイト'に設定されておらず、 '.NET Framework 3.5 SP1'の 'DotNetFX35SP1 \ dotNetFX20 \ aspnet.msp'ファイルをディスクに配置できません。詳細については、ヘルプを参照してください。 – mmr

+0

また、boostrapperエンジンディレクトリ内のsetup.binは、私には奇妙なsp1のための適切なディレクトリを見つけられないようです。 – mmr

+0

申し訳ありません、ブートストラップ – mmr

0

あなたはこのMicrosoft sample codeをチェックアウトすることができますが、WiXはブートストラップ/チェーンャーを提供していないことがあります。これはWiX 3.5が「書き込み」ツールとして使用されるまではありません。

元の例で使用しているものがわかりません。msbuildなど(WiXコンポーネントではないものと仮定しています)。