Интересно, есть ли у кого-нибудь решение этой ошибки 2010 года. У меня есть проект, который прекрасно сработал в Visual Studio 2008, который не будет построен в 2010 году, потому что Visual Studio держится за DLL после запуска приложения ТОЛЬКО, если открыто окно конструктора. Я создал действительно легкий проект, который показывает эту проблему. Если вы создаете приложение, то создайте библиотеку DLL. Поместите одну форму в dll, откройте форму в режиме конструктора и запустите приложение. Он будет работать нормально, затем закроет приложение, перейдет к представлению кода формы в режиме конструктора и изменит код (я только что переименовал одну переменную), а затем попробую перекомпилировать, вы получите следующее:
Ошибка 1 Невозможно скопировать файл "obj \ Debug \ customlib.dll" в "build \ debug \ customlib.dll". Процесс не может получить доступ к файлу «build \ debug \ Customlib.dll», так как он используется другим процессом.
Если вы запускаете Process Explorer и ищете dll, единственный процесс, содержащий dll, это devenv.exe !!!
Я провел массу поисков по этой проблеме и обнаружил аналогичные проблемы со старыми версиями Dev Studio, где люди могли просто добавить предварительный шаг , чтобы переместить заблокированную dll на другое имя ( .locked) и построить. Хорошо, это работает в первый раз, но в следующий раз, когда вы запустите, затем отредактируете, вы заблокированы как от текущей dll, так и от той, которую вы переместили в .locked, так что, если я не захочу добавить код для случайного генерирования имени для заблокированной dll , это не будет работать для меня (я не хочу, чтобы размер моего каталога отладки увеличивался с файлами, никогда не удаляемыми.)
Я нашел только один обходной путь, и если вы находитесь в той же лодке, это то, что я должен сделать, чтобы редактировать и запускать. Я удостоверяюсь, что КАЖДОЕ окно представления дизайна закрыто ПРЕЖДЕ ЧЕМ я запускаю свой проект в отладчике. Если вы закроете все открытые дизайнерские окна Windows devenv.exe не будет держать DLL.
У кого-нибудь есть лучшее решение этой проблемы?