新しいプロジェクトのPostSharpを評価していますが、変更後にプロジェクトを最初にビルドしたときに、次のエラーを乗り越えることができないようです。
ファイル"C:\ SourcePath \ Output \ Debug\MyApp.vshost.exeをobj\Debug \ Before-PostSharp \ MyApp.vshost.exeにコピーできません:ファイルはプロセスによってロックされています:MYAPP.VSHOST(8064)
このエラーは、最初のビルド試行でのみ発生します。すぐに再構築してもエラーは発生しません。これは、プロジェクトが実際に2回目に再構築されていないためだと推測できます。
SharpCraftersフォーラムで、この問題がv2.1より前に存在していたが、修正されたと報告されているいくつかの投稿を読みました。NuGet(VS 2010)のv2.1.6.14を使用していますが、PostSharpを参照するすべてのプロジェクトでこのエラーが発生します。毎回2つのビルドを要求することは確かに合理的ではないので、私は可能な解決策を探しています。これまで見てきたことには本当に満足していますが、それが解決できない場合は別の方向に進む必要があります。
アップデート
Gaelの要求に従って、診断ビルドログを生成して送信しましたが、最新リリース(2.1.6.14)で問題を解決できたようです。
問題の一部(またはすべて)は、すべてのプロジェクトのビルド出力が共通の場所(つまり、各プロジェクトの下の/ bin / debugフォルダーではない)に設定されていることが原因である可能性があります。これは、出力パスにあるアセンブリに含まれるインポートとエクスポートを検出するMEFDirectoryCatalogを使用しているためです。PostSharp.targetsファイルでは、vshost.exeファイルがコピー操作から除外されていますが、出力アセンブリの名前を共有している場合に限ります。私の場合、vshost.exeファイルの名前が異なるため、除外されませんでした。