3

私が現在取り組んでいるプロジェクトでは、ビルド後のイベントと相対パス参照を多用しています。つまり、すべてのソリューション間参照が相対パスを持つdll参照として実装されており、参照ソリューションはビルド後のイベントを使用してバイナリをドロップします。

これは、Visual Studio環境でうまく機能します。現在、ソースコードを自動的に構築し、毎日のバイナリドロップを作成する方法を検討しています。TFSビルドは、相対パス参照とうまく連携していないようです。

これに対する迅速な解決策はありますか?これがそれほど複雑であるとは信じられません。必要なのは、ビルドをスケジュールして最新のソースコードを取得し、Visual Studio定義としてビルドし、バイナリを共有フォルダーにドロップすることだけです。

どうもありがとう

4

2 に答える 2

3

TFS ビルド システムを使用すると、ポスト ビルド イベントを使用するプロジェクトが壊れるのをかなりの数見てきました。この問題は通常、Visual Studio が $(OutDir) 変数を MSBuild エンジンに渡す方法が、TFS ビルド エンジンが行う方法とは異なるために発生します。基本的に、Visual Studio 内でコンパイルする場合、$(OutDir) パスは (通常) bin\debu または bin\release に設定されますが、TFS BUild システム内では、ビルドが行われるビルド マシンの Binaries ディレクトリに設定されます。

これがビルドを台無しにしている場合、これを修正する方法がいくつかあります。

アプローチ1

  1. ビルド後のイベントが、..\bin\release などのハードコードされたパスに依存しないようにします。代わりに、bin\debug または bin\release を使用する場所では $(OutDir) を使用します。
  2. ビルド中のソリューション ファイルのパスを取得するには、$(SolutionDir) または $(solutionPath) を使用します。
  3. ここのリストを使用して、ビルド スクリプトのパス変数に必要な変更を加えます。

アプローチ 2

  1. こちらのリンクを使用してビルド テンプレートをカスタマイズし、Visual Studio モードのコンパイルを使用するようにします。これが機能するために、ビルド後のイベントを変更する必要はありません。
于 2012-10-24T13:29:49.753 に答える
0

ニキル、ありがとう。TFSビルドよりもはるかに簡単で柔軟であるため、クルーズコントロールを使用することにしました。私たちのような小さなチームにとって、それは単なるビルドであり、これらのワークフローや複雑な要件についてはあまり気にしません..

于 2012-10-25T15:13:55.380 に答える