2

WiX をバージョン 3.5 からバージョン 3.7 にアップグレードしましたが、インストーラーのビルド前のステップでエラーが発生しました。

問題のビルド前のステップは"%wix%\bin\heat.exe" dir "$(OutDir)_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "$(ProjectDir)HeatFile.Generated.wxs"

これにより、チーム ビルドがエラーで失敗するようになりましたC:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets (816): The command ""%wix%\bin\heat.exe" dir "C:\Builds\12\TFS\Wix 3.7 Test Build\Binaries\_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "C:\TFS\WiX3.7\Install\HeatFile.Generated.wxs"" exited with code 3

私が知ることができなかった何かが熱で変化しない限り、このエラーを引き起こすために何が変わったのかわかりません.

編集:

ロブが以下のコメントで冗長ビルドについて言及した後、「ビルド前の環境」を見て、WIX プロパティが に設定されていることがわかりましたが、WIX = C:\Program Files (x86)\Windows Installer XML v3.5\コントロール パネルを介してシステム環境変数で同じプロパティを見ると、 、WIX が に設定されていることがわかりC:\Program Files (x86)\WiX Toolset v3.7\ます。

これが設定される MSBuild 構成のどこかにありますか?

編集2:

これも .wixproj ファイルで見つけました。

<ProductVersion>3.5</ProductVersion>
<ProjectGuid>{GUID}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Install</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>

ここで変更する必要があるものはありますか (製品バージョンなど)?

4

1 に答える 1

6

問題を解決したと思われる2つのことを行ったので、正確な解決策が何であるかははっきりとは言えませんが、これが私がしたことです.

  1. ビルドサーバーを再起動しました。正しい環境変数が表示され、コマンドラインから正しい値が返されたにもかかわらず、念のため再起動しました。
  2. ビルド前のイベントを$(WIX)代わりに使用するように変更しました%WIX%

ビルドがイベントを正しく実行し、成功するようになりました。IIS Web サイトで別の問題が発生していますが、必要に応じて新しい質問を提起します。

于 2013-03-04T13:52:36.783 に答える