1

3 つのプロジェクトがあります。Project1.WebProject1.ServiceおよびProject1.CommonProject1.Webとの両方Project1.Serviceが に依存していProject1.Commonます。

  • 3 つのプロジェクトすべてを含むソリューションを再構築すると、すべて正しく動作します。
  • でファイルを変更した場合Project1.Web; ファイルは Project1.Web\bin にビルドされます - すべて正常に動作します。
  • ファイルを変更した場合、Project1.Serviceファイルは Project1.Service\bin\Debug にビルドされ、一部は Project1.Web\bin にコピーされます。コピーされたファイルは Project1.Common.dll ですが、Project1.Web.dll はビルド (またはコピー) されていません。
  • で変更されたファイルProject1.Serviceは共有されず、 のインクリメンタル ビルドをトリガーするために変更されただけですProject1.Service

Visual Studio がビルド アーティファクトをインクリメンタル ビルドの一部ではないディレクトリにコピーする理由を知っている人はいますか?

現在、この一連のイベント リーフProject1.Webは動作していない状態でProject1.ServiceありProject1.Web、サード パーティのアセンブリを介して同じアセンブリの異なるバージョンに依存しています。に変更を加えることにした場合Project1.Service、 を壊すという副作用がありProject1.Webます。

私は次のことを試しました/チェックしました:

  1. Project1.WebProject1.Service(どちらの方向にも)の間に依存関係はありません。
  2. で変更されたファイルProject1.Serviceは共有されません。ビルド前後のイベントは定義されていません。
  3. Project1.Service.csproj プロジェクト ファイルで msbuild を実行しても、同じ効果はありません。
  4. 下の bin ディレクトリに対する書き込み/作成権限を拒否Project1.Webしても、インクリメンタル ビルドは失敗しません。
  5. Project1.Web(Visual Studio 内から)参照する詳細または診断 msbuild 出力に出力は出力されません。
  6. を使用するprocmonと、devenv がmswebprj.dll(C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\mswebprj.dll) を使用していることがわかります。これにより、ファイルのコピーが呼び出されます。
4

0 に答える 0