1

C#プロジェクトがあります。構成に応じて、exeまたはMSIをビルドしたい。

MSIは次のように定義されます

<PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">MSI</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
  <ProductVersion>9.0.30729</ProductVersion>
  <ProjectGuid>{DCB76E90-6364-4DFB-B568-3680EE4F9C80}</ProjectGuid>
  <SchemaVersion>2.0</SchemaVersion>
  <OutputName>Project1</OutputName>
  <OutputType>Package</OutputType>
  <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
  <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'MSI|x86' ">
  <OutputPath>bin\MSI2\</OutputPath>
  <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
  <Compile Include="MyWxs.wxs" />
</ItemGroup>

問題は、私が両方を持っていることを試みるときです

<Import Project="$(WixTargetsPath)" />

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

エラー

A problem occurred while trying to set the "TargetType" parameter for the IDE's in-process compiler.
Invalid target type "package" for /target: must specify 'exe', 'winexe', 'library', or 'module'.

私は何をしますか?

4

1 に答える 1

5

これらのターゲットの両方を 1 つのプロジェクトにインポートすることはできません。どちらもアイテムを処理できることを期待していCompileます (完全に異なるツール、つまりcandle.exeと を使用csc.exe)。個別のプロジェクトが必要です。通常、Microsoft.CSharp.targets.csproj にWix.targets移動し、.wixproj に移動します。

于 2013-03-21T19:17:53.107 に答える