誰かがこの 2010 年のバグの解決策を持っているかどうか疑問に思っています。デザイナー ウィンドウが開いている場合にのみ、アプリケーションが実行された後に Visual Studio が dll を保持しているため、2010 年にはビルドされない Visual Studio 2008 で正常にビルドされたプロジェクトがあります。この問題を示す非常に軽量なプロジェクトを作成しました。アプリケーションを作成する場合は、lib dll を作成します。1 つのフォームを dll に入れ、そのフォームをデザイン ビューで開き、アプリケーションを実行します。正常に実行され、アプリを閉じ、デザイン ビューでフォームのコード ビューに移動し、コードを変更して (単一の変数の名前を変更しただけです)、再コンパイルを試みて次の結果を得ます。
エラー 1 ファイル "obj\Debug\customlib.dll" を "build\debug\customlib.dll" にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'build\debug\Customlib.dll' にアクセスできません。
Process Explorer を実行して dll を検索すると、dll を保持しているプロセスは devenv.exe だけです!!!
この問題について大量の検索を行ったところ、ロックされた dll を別の名前 (.locked) に移動してビルドするための事前手順を追加するだけで、以前のバージョンの Dev Studio で同様の問題が見つかりました。最初はうまくいきますが、次に実行して編集すると、現在の dll と .locked に移動した dll の両方からロックアウトされます。ロックされた dll の名前をランダムに生成するコードを追加しない限り、これは私にとってはうまくいきません(ファイルが削除されずにデバッグディレクトリのサイズが大きくなるのは望ましくありません。)
私が見つけた回避策は 1 つだけです。あなたがこれと同じ船に乗っている場合、これを編集して実行する必要があります。デバッガーでプロジェクトを実行する前に、すべてのデザイン ビュー ウィンドウが閉じていることを確認します。開いているすべてのデザイン ビュー ウィンドウを閉じると、devenv.exe は dll を保持しません。
誰でもこの問題に対するより良い解決策を持っていますか?