ASP.NET Web アプリケーション プロジェクトを開発しているときに、Visual Studio 2008 でこのエラーが発生します。
参照されたライブラリ 'Path-to-DotNetNuke\bin\file.dll' を読み込めません: 別のプロセスで使用されているため、プロセスはファイルにアクセスできません。
これは、複数のモジュールを含む DotNetNuke プロジェクトです。IIS は、アプリケーション ルートの下の /bin フォルダーからすべてのアセンブリを読み込みます。
ソリューション内のプロジェクトは、それぞれの /DesktopModules/ProjectName フォルダーにあり、プロジェクトの下の bin フォルダーにコンパイルされます。
ソリューションをコンパイルし、スクリプトを使用してすべてのプロジェクトの dll を /bin にコピーすると、エラーが発生します。Visual Studio では再コンパイルできませんが、再起動するとすべて正常に動作します。これは、ソリューション全体を再コンパイルしてテストするときに非常に面倒です。再コンパイルするたびに Visual Studio を再起動する必要があります。
Visual Studio でこのエラーが表示されたとき、Process Explorer でファイル ロックが見つかりませんでした。
[更新] 64KB を超える DLL を参照する場合、すべての DLL を 1 つのフォルダーにビルドしないように指示する古い MSDN ドキュメントがあります。特に、ドキュメントには次のように記載されています。
参照されているアセンブリのサイズが 64 KB を超えると、ビルド プロセスがファイル ロック エラーで失敗します。
/bin フォルダーに 64KB を超える DLL への参照があり、そこに再コンパイルされた DLL をコピーすると、少なくとも VB IDE のバックグラウンド コンパイラーでは、これがトリガーされるようです。