2017-01-15 13 views
0

Visual StudioでWiXを使い始めるだけです。ブートストラッププロジェクトテンプレートに関する多くのドキュメントを見つけることができません。ビジュアルスタジオでWiX Bootstrapperを作成するときに2つのWIXプロジェクトが必要ですか?

空のWPFアプリケーションを作成しました。その後、私は良い作業

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Product Id="*" Name="WiXBenchInstaller" Language="1033" Version="1.0.0.0" Manufacturer="None" UpgradeCode="9d845a6d-3e16-45d6-b0c4-7e818e465bfe"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
    <MediaTemplate EmbedCab="yes"/> 

    <Feature Id="ProductFeature" Title="WiXBenchInstaller" Level="1"> 
     <ComponentGroupRef Id="ProductComponents" /> 
    </Feature> 
</Product> 

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="WiXBench" /> 
     </Directory> 
    </Directory> 
</Fragment> 

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
     <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. --> 
     <Component Id="ProductComponent"> 
    <File Source="$(var.WiXBench.TargetPath)"/> 
     </Component> 
    </ComponentGroup> 
</Fragment> 

は、その後私はブートストラッププロジェクトを作成したセットアッププロジェクト... ...

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Bundle Name="WixBenchBootstrap" Version="1.0.0.0" Manufacturer="None" UpgradeCode="4b1049ed-38ba-4289-8d8d-e291160201e0"> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 

    <Chain> 
    <MsiPackage SourceFile="$(var.WiXBenchInstaller.TargetPath)"/> 
    </Chain> 
</Bundle> 

すべてを作成しました。私の質問は、これが正しいアプローチかどうかです。単純なアプリケーションのために2つのインストーラプロジェクトを持つのは残酷なようです。必要なものがすべて入っている単一のブートストラッププロジェクトを簡単に作成できますか?

答えて

1

これは、達成したいパッケージの数、UIなどによって異なります。

http://wixtoolset.org/documentation/manual/v3/bundle/

「バンドルは、単一のユーザーエクスペリエンスにチェーニングされているインストールパッケージのコレクションである。バンドルには、多くの場合、アプリケーションの前に、そのような.NET FrameworkのまたはVisual C++ランタイムなどの前提条件をインストールするために使用されていますまだあなたは1つのMSIパッケージを持っている場合、エンドユーザー」

に単一の製品を提示しながら.MSIファイル。バンドルはまた、非常に大規模なアプリケーションやアプリケーションのスイートを許すが小さく、論理的なインストールパッケージに分割すると、あなたはしないでくださいMSIプロジェクトだけを使用するよりも複雑なUIが必要です。 パッケージが複数ある場合、またはWPF UIが必要な場合は、現在使用しているようにブートストラップを使用する必要があります。

+0

私は.msiではなく.exeが必要なことを除いて。 WiXセットアッププロジェクトにはexeファイルを作成するオプションがありますが、これは動作しないようです。私はバグだと思う。また、ライセンスファイルなどを表示するブートストラップにあるようなUIが必要です。だから、私は2つのWiXプロジェクトが必要です。 – AQuirky

+0

exeが必要な場合は、上記のようにバンドルを作成する必要があります。また、MSIにはライセンスとその他のダイアログボックスのビルドを表示するオプションがあります。 http://wixtoolset.org/documentation/manual/v3/wixui/wixui_dialog_library.html。私の答えが役に立ったら、答えた印を付けてください。 –

1

はい、正しいアプローチです。

一般に、VSプロジェクトは1つのメイン出力(.exe、.dll、.netmodule、.lib、.msiなど)を生成し、wixprojsも例外ではありません。これに関する規則はありません。 MSBuild .targetsファイルとその関連するVSプロジェクトデザイナーの設計だけです。

異なる開発者の気を散らすならば、プロジェクトのさまざまなサブセットを含むさまざまなソリューションを持つことができます。 (1つのソリューションには0個以上のプロジェクトが含まれています。プロジェクトは0個以上のソリューションに含まれています)

関連する問題