1

ファイルをテンプレート バージョンからコンパイル可能なバージョンにコピーするか、ツールを呼び出してファイルを変換するには、Visual Studio でビルド前イベントを使用する必要があります (デバッグ モードかリリース モードかによって異なります)。前にここで見つけたように、デバッグスイッチを使用しました

if $(ConfigurationName) == Debug goto :debug

$(SolutionDir)\Tools\MyTool\Translate -i $(ProjectDir)\Themes\Generic.Template.xaml -o $(ProjectDir)\Themes\Generic.xaml 

goto :end

:debug

copy /y $(ProjectDir)\Themes\Generic.Template.xaml $(ProjectDir)\Themes\Generic.xaml

:end

ローカルの Visual Studio を使用している限り、すべて正常に動作します。ただし、TeamCity でビルドする場合、Studio マクロ変数が正しく設定されません。Visual Studio 自体はビルド サーバーにインストールされません。ビルド スクリプトとして、ソリューション ファイルで msbuild を呼び出す f#make を使用します。ビルド バッチをローカルで呼び出すことも完全に実行されるため、TeamCity はこれらの変数を何らかの形で隠しているようです。

それに関する既知の問題はありますか?

4

1 に答える 1

0

.sln ファイルに対してビルドする場合、msbuild と devenv.exe の間に明確な違いがあることは知っています。たとえば、msbuild ドリブン ビルドは、Visual Studio 展開プロジェクトをビルドしません。ビルド前の手順でどのような影響があるかは、はっきりとは言えません。

TeamCity ビルド ステップを変更して、msbuild の代わりに devenv.exe を使用することをお勧めします (おそらくコマンド ライン ビルド ステップが必要です)。

TeamCity は、エージェント上の devenv.exe への正しいパスを見つけるのに役立ついくつかのビルド ビルド パラメーターを提供します。env.VS100COMNTOOLS と VS2010_Path です。

于 2012-12-02T16:50:22.027 に答える