2017-05-08 7 views
1

私はWix3.11RCツールセットがインストールされたWin10 64ビットOSを使用しています。私のVS2017はWix v3インストーラプロジェクトを作成しました。私たちのチームはCIツールとしてTeamCity9.1を使用しています。Teamcity 9.1のWixインストーラプロジェクトをビルドしますが、ビルドマシンで `WixToolPath`を設定する方法は?

ここでは、TeamCityのビルドエージェントで、wixprojのCIサーバー設定なしのビルド(I には特権がありません)をサポートするようにしたいと考えています。私は基本的にいくつかのチュートリアルに従って、ソースコードの相対パスに置かれているすべての必要なWixビルドファイル(wix Binフォルダとwix.targets)をチェックして、今は編集中のパスの問題でブロックされています.wixprojファイル、公式ドキュメントは言った: http://wixtoolset.org/documentation/manual/v3/msbuild/daily_builds.html

<PropertyGroup> 
     <WixToolPath>$(SourceCodeControlRoot)\wix\[[Version]]\</WixToolPath> 
     <WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath> 
     <WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath> 
</PropertyGroup> 

そして、これは私のものです:

<PropertyGroup> 
     <WixToolPath>..\..\wix\3.11\</WixToolPath> 
     <WixTargetsPath>$(WixToolPath)targetsFile\v3.x\wix.targets</WixTargetsPath> 
     <WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath> 
    </PropertyGroup> 

私はWixToolPathのための相対パスを使用している理由は、$(SourceCodeControlRoot)が実際に酸っぱいここD:\として解決したが、ありますCIコードはCIサーバによってチェックアウトされ、D:\ABC\f14c7929aa63f1fcのようなランダムなフォルダの下に置かれます。私の設定では、ローカルビルドもできません。ビルドエラーは、WixTasksPathが存在しないパスに解決されたことを示しています:C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\..\..\wix\3.11\wixtasks.dll

どのように達成できますか?ありがとう!

+0

この問題は、GitHubのドキュメントバグとしてマークされています:https://github.com/wixtoolset/issues/issues/1911残念ながら、この問題に関する最新情報はありません。 –

答えて

0

ツールの起動前に、TeamCity提供の参照を使用してファイル内のパスを絶対パスに変更する方法があります。 TeamCity設定では、チェックアウトディレクトリパスを%system.teamcity.build.checkoutDir%として参照するか、MSBuildビルドステップとして実行する場合はMSBuildステップで$ {teamcity.build.checkoutDir}を使用します。 最初のビルドステップで置換を実行するか、TeamCity file content replacerを使用して古い値を新しいビルドステップに変更することができます。