Visual Studio 2010 Designer Bug: Невозможно скопировать с OBJ Debug в Bin Debug
-
29-09-2019 - |
Вопрос
Удивительно, что у кого-то есть решение этой ошибки 2010 года. У меня есть проект, который построил штраф в Visual Studio 2008, который не построен в 2010 году, потому что Visual Studio удерживает DLL после того, как приложение запущено только в том случае, если окно конструктора открыто. Я создал действительно легкий вес проекта, который показывает эту проблему. Если вы создаете приложение, то создайте диск DLL. Положите одну форму в DLL, откройте форму в представлении «Дизайн», а затем запустите приложение. Он будет работать нормально, затем закройте приложение, перейдите к представлению кода формы в представлении «Дизайн» и измените код (я просто переименовал одну переменную), затем попробуйте перекомпилировать, что вы получаете следующее:
Ошибка 1 Невозможно скопировать файл "obj debug customlib.dll", чтобы "построить debug customlib.dll". Процесс не может получить доступ к файлу «Build Debug CustomLib.dll», потому что он используется другим процессом.
Если вы запустите процессы Explorer и найдите DLL, единственный процесс, удерживающий DLL DEVENV.EXE !!!
Я сделал тонну поиска этой проблемы и нашел подобные проблемы со старыми версиями DEV Studio, где люди смогли просто Добавьте предварительный шаг Чтобы переместить заблокированную DLL на другое имя (заблокировано) и построить. Хорошо, что работает в первый раз, но в следующий раз, когда вы запускаете, а затем редактируете, вы заблокированы из текущей DLL, и тот, который вы перемещали в .LOABLED, поэтому, если я не готов добавить код, чтобы случайным образом генерировать имя для заблокированного DLL Это не будет работать для меня (я не хочу, чтобы мой размер каталога отладки расти с файлами, которые никогда не удаляются.)
Я нашел один обходной путь, и если вы в этой же лодке, это то, что я должен сделать, чтобы редактировать и бегать. Я убедиться, что каждое окно просмотра дизайна закрыто, прежде чем я когда-нибудь запускаю свой проект в отладчике. Если вы закроете все открытые дизайн просмотра Windows Devenv.exe не удержит DLL.
У кого-нибудь есть лучшее решение этой проблемы?
Решение
Я не уверен, будет ли это работать для вас или нет, но Этот подобный вопрос Если у вас есть эта строка в сборке CO.CS:
[assembly: AssemblyVersion("2.0.*")]
Изменение этого:
[assembly: AssemblyVersion("2.0.0.0")]
решит это верно.
Навигационная студия дополнения "Vscommands.«Претензии, чтобы исправить эту проблему. Я еще не тестировал, но это также утверждает, что есть трекер репутации StackoverFlow In-IDE, который интригирует меня :)
Ваш «близкий дизайнер перед отладкой» обходной путь, кажется, работает для меня (До сих пор), за что я очень благодарен. Начало добраться до сцены, где большая часть моего дня была проведена в следующем рабочем процессе ...
F5.
громкий ругатель
Alt. F4.
ПОБЕДИТЬ 3
нетерпеливо ждет ...
- F5.
Другие советы
У меня долгое время имели те же проблемы, а затем внезапно они исчезли. Я понял, что источником проблем был инициализирует код в конструкторах WCF Services и Controls WPF. После очистки конструкторов из любых зависимостей к другим собраниям все было хорошо.
Итак, мое предложение: очистить свои конструкторы.
В WPF возможно, что вставление:
if (DesignerProperties.GetIsInDesignMode(this)) return;
или подобное будет иметь тот же эффект.