MSBuild には、ブートストラッパーを生成するコマンドが用意されています。
これを使うと、VSのセットアッププロジェクトと同じ必須コンポーネントをインストールするブートストラッパーを作成できます。
設定のUIがないため、自分で記述する必要はありますが...
ということで、VS2010用の設定例。
<Target Name="AfterBuild" Inputs="$(MSBuildProjectFullPath)" Outputs="$(OutputPath)Setup.exe">
<ItemGroup>
<BootstrapperFile Include=".NETFramework,Version=v4.0,Profile=Client">
<ProductName>Microsoft .NET Framework 4 Client Profile (x86 および x64)</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
<ProductName>Windows Installer 3.1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Visual.C++.10.0.x86">
<ProductName>Visual C++ 2010 ランタイム ライブラリ (x86)</ProductName>
</BootstrapperFile>
</ItemGroup>
<GenerateBootstrapper
ApplicationFile="$(TargetFileName)"
ApplicationName="アプリケーション名"
BootstrapperItems="@(BootstrapperFile)"
ComponentsLocation="Relative"
CopyComponents="true"
Culture="ja"
OutputPath="$(OutputPath)" />
</Target>
ちなみに...取り込んでいるのは
- Microsoft .NET Framework 4 Client Profile (x86 および x64)
- Windows Installer 3.1
- Visual C++ 2010 ランタイム ライブラリ (x86)
の3つです。
ApplicationName 属性と必要な必須コンポーネントのリストを変更して、wixproj の最後に貼り付けてビルドするだけ。
その他細かな設定項目などは、MSDNライブラリのGenerateBootstrapper タスクを参照してください。