2016-10-26 8 views
0

によって、ドロップ先にHttpファイルがコピーされない編集:この投稿を送信した後、私は実際の問題を特定しました:MSDuild/TFSBuildは.dll 'CopyLocal = true' GACにあります。この場合、 "System.net.http.formatting" dllはビルドサーバー上のGACにあります。 Look hereおよびhereシステム。* TAP 2015ビルドエージェント

TFS 2012から2015にアップグレードした後、ビルドエージェントは次のDLLをドロップ場所にコピーしなくなりました。ビルドエージェントがそれらのファイルをコピーしていない理由を特定するにはどうすればよいですか?

system.net.http.formatting、System.Web.Http.dllまたはSystem.Web.Http.WebHost.dll

詳細

  • 私たちは、MVCプロジェクトとソリューションを持っています上記のdllを参照してください。
  • .csprojファイルは、ヒントパスを使用して、ソリューション/packages/...ディレクトリ内のファイルを参照します。パスが有効であることを確認しました。ソリューションにpackagesディレクトリがあります。
  • TFS 2015にアップグレードする前に、ソリューションをビルドするときに、上記のファイルがドロップ先にコピーされます。ただし、アップグレード後ではありません。
  • ビルドは失敗しませんが、TFS 2015のアップデート後にターゲットWebサーバーが 'ファイルが見つかりません'というエラーをスローします。 (MVCがなく、対象のWebサーバーにインストールすることはできません)

  • ビルドは、両方の、ビルドのログファイルを見ると

  • 2012 XAMLのビルド定義を利用.dllファイル

    を参照します

    CSC.exe ... /reference:D:\B\15...packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll

  • ビルドログは、TFS 2012のバージョンビルドのみが.dllファイルをドロップ場所にコピーすることを示しています。 D」から

    コピーファイル::2015ビルドログは、次のような行を持っていません.. \パッケージ\ Microsoft.AspNet.WebApi.Client.4.0.20710.0 \ libに\ net40 \ System.Net D "を" .Http.Formatting.dll:.. \ BIN \ EG.WS.EZScan.Web.Intranet \ System.Net.Http.Formatting.dll

  • がビルドサーバーがアップグレード中に変更されませんでした
  • プロジェクトは、新しいバージョンのMVCに更新されませんでした。プロジェクトは、バージョン4.0.0.0を参照しています.GACedファイルは、次のように構成されています。 Eサーバーを構築し、私が見なければならない他に何バージョン4.0.0.0(ファイルバージョン4.0.20710.0

です。

+0

を確認してください?参照先のDLLをドロップ位置にコピーしたいのはなぜですか? –

+0

カスタマイズされた展開システムがあります。私たちはビルド・エージェント・サーバーを構築し、コンテンツを開発/テスト/プロダクション・サーバーにプッシュします。ターゲットサーバには、同じコンポーネントがインストールされていない可能性があります。 ちなみに、新しいMS/Visual Studioパターン(特にコアを含む)は、GACに頼るのではなく、ビルド/デプロイメント時にすべてのバイナリを含めることです。近い将来、MSがこの問題に対処することを願っています。 – davewilliams459

答えて

1
  1. TFS 2015にアップグレードしたので、XAMLビルドとはまったく異なる新しいビルドシステムを使用することをお勧めします。確認:https://www.visualstudio.com/en-us/docs/build/overview

  2. まだ参照されていないTFSの参照先のDLLをチェックしているようです。代わりに、NuGetなどのパッケージマネージャを使用してパッケージを復元することをお勧めします。 https://docs.nuget.org/ndocs/consume-packages/package-restore#msbuild-integrated-restore

  3. 新しいビルドシステムを使用する場合は、ビルドタスクの前に定義にNuGetパッケージの復元タスクを含めることができます。 Nugetパッケージの詳細な情報の復元、あなたはまだTFS 2015年にXAMLビルドを使用していますhttps://docs.nuget.org/ndocs/consume-packages/package-restore

enter image description here

+0

お返事ありがとうございます。 XAMLビルドへのアップグレードは私たちのリストにありますが、現時点ではオプションではありません。カスタマイズされたビルド・ラベル・トラッキングとデプロイ・アプリケーションを含む複雑なビルド・プロセスがあります。 XMALプロジェクトを介してNuGetを実行することは可能ですか? – davewilliams459

+0

はい、オプション2をチェックします。 –

関連する問題