1

サードパーティアプリケーションの拡張機能を構築します。ソースコードにアクセスできません。Visual Studioには、ファイルを上記のプログラムのアセンブリディレクトリにコピーするためのビルド後のコマンドがあります。

copy $(TargetDir)$(TargetName).pdb "$(ProgramDropDir)"
copy $(TargetDir)$(TargetName).dll "$(ProgramDropDir)"

プログラムを起動すると、アセンブリがロードされます(実際には、必要なときにロードされます。これはJITコンパイルによるものだと思います)。私たちのアプリケーションは49のアセンブリで構成されています。それらすべてを展開するのは非常に遅いです。プロジェクトレベルでビルドすることで、遅いビルドを回避できます。これにより、参照されるアセンブリのみがビルドされます。それでも95%の確率で問題があります。通常、実際に変更されたアセンブリは1つだけですが、すべてがコピーされます。

このプロセスをどのように改善できますか?理想的には...

A.アセンブリは変更された場合にのみデプロイしてください。
B.プロジェクトファイルが変更された場合にのみビルドします。
C.メインアプリケーションを実行する予定の場合にのみコピーします。EG単体テストの実行中はコピーしないでください。
D.サードパーティのアプリが実行されていると、ビルドが失敗します。アプリを閉じる必要があります。つまり、アプリに再ログインして、アプリが読み込まれるのを待つ必要があります(読み込みが遅い獣です)。

私はTFS2010を所有しています。どうしても必要な場合は、新しいツールを利用できます。

4

1 に答える 1

0

A.これを行うにはRoboCopyを使用できます。デフォルトでは、RoboCopyは、ソースと宛先のタイムスタンプまたはファイルサイズが異なる場合にのみファイルをコピーします。

MSBuildで実行する場合は、MSBuildExtensionPackでRoboCopyタスクを使用することもできます。

B. CIサーバーを使用している場合は、SCMに変更が加えられるたびにビルドを開始するポーリングSCMメカニズムを使用できます。

最後のもので何を意味するのかわかりません。アプリケーションまたは単体テストを「実行」しても、ビルドはトリガーされません。

于 2012-05-30T22:12:05.893 に答える