2

WiX 3.0 で問題なくビルドできた私のプロジェクトは、現在では失敗します。

heat.exe: エラー HEAT5301: 無効なプロジェクト出力グループ: Binaries3bSources3bSatellites%3bDocuments。

この ProjectOutputGroup を wix.targets ファイルで見つけましたが、次のようになります。

<CreateItem 
  Include="@(_MSBuildProjectReferenceExistent)" 
  Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' " 
  AdditionalMetadata="ProjectOutputGroups=Binaries%3BSymbols%3BSources%3BContent%3BSatellites%3BDocuments;GenerateType=payloadgroup;HeatOutput=$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs">
  <!-- ... -->
</CreateItem>

最初の 2 つの値については破棄されているように見えます%が、最後の値についてはまだ存在しています。

4

7 に答える 7

2

影響を受ける WiX プロジェクトにすべての参照を再度追加すると、私にとっても問題が解決します。とりわけ、プロパティ

<DoNotHarvest>True</DoNotHarvest> 

が各参照に追加され、明らかにこれが解決策です。

于 2011-01-12T09:34:52.787 に答える
2

toolsversion を 4.0 に設定するとうまくいきました。

変化する:

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

に:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
于 2011-11-16T12:43:55.060 に答える
2

I was running the heat from the command line. So the things mentioned above didn't help me at all. Originally my configuration looked like:

heat.exe project "project.csproj" -cg GroupName -gg –out "C:\OutPutLocation.wxs"

That produced the following error: heat.exe: error HEAT5302 : No project output group specified.

I changed it to add in the -pog switches, also added the -configuration and -platform switches.

heat.exe project "project.csproj" -cg Portals.Vendor -gg -pog Binaries -pog Content –configuration "release" -platform "AnyCPU" –out "C:\OutPutLocation.wxs"

BTW: I'm running version WIX 3.7. for VS 2010 .NET 4.0 project.

Just in case you need the reference for the switch commands for 3.x:

http://wix.sourceforge.net/manual-wix3/heat.htm

于 2013-01-02T20:37:22.057 に答える
2

WiX 3.0 から WiX 3.5.x にアップグレードされた WiX プロジェクトの 1 つ (Visual Studio 2008 ソリューションの下) で同じエラーが発生しました。また、問題は TFS 2010 ビルド サーバーでのみ発生しました。Visual Studio でのデスクトップ ビルドは問題ありませんでした。

私たちの WiX セットアップ プロジェクトは、一連の C# クラス ライブラリと同じソリューションにあります。これは基本的にライブラリ インストーラーです。WiX プロジェクトには、各 C# ライブラリのプロジェクト参照があり、"$(var.MyLibrary1.TargetDir)\MyLibrary.dll" 構文を使用して、WiX スクリプト内のファイルを参照します。

DoNotHarvest は問題を解決しませんでした。

WiX セットアップ プロジェクトからすべての C# ライブラリ参照を削除してから再度追加することで、この問題を回避しました。

于 2010-08-31T03:13:35.577 に答える
1

すべての参照を再度追加しても問題は自動的に修正されませんでしたが、DoNotHarvest 要素を各プロジェクト参照に手動で追加すると修正されました。

于 2011-04-26T11:41:58.270 に答える
1

代わりに、wix.targets ファイルを編集してハーベスト用の余分なディレクトリを削除する必要がありました... 幸いなことに、私は現在 HEAT を使用していません。その変更を行った後、ビルド サーバーで再度ビルドできるようになりました。

興味深いことに、これはデスクトップ コンピューターの Visual Studio 内からのビルドには影響しませんでした。

于 2010-08-30T19:27:25.657 に答える
0

まず、最新のビルドにアップグレードしてみてください。WiX v3.5 は開発中のため、問題が修正されている可能性があります。そうでない場合は、コミュニティが問題について知ることができるように、問題に未解決のバグがあることを確認してください。最後に、HeatTask のデバッグを試みて、問題が発生している場所を確認できます。

于 2010-07-11T14:36:32.193 に答える