Visual Studio 2017 не удалось скопировать dll, потому что она используется процессом MSBuild.exe

У меня есть решение с двумя включенными проектами: WPF Applicatin и ClassLibrary (пробовал как стандартный, так и рамочный шаблон). WPFApp ссылается на ClassLibrary.

Проблема в том, что когда я пытаюсь построить решение, я получаю следующую ошибку:

Невозможно скопировать файл «obj \ Debug \ ClassLibrary.dll» в «bin \ Debug \ ClassLibrary.dll». Процесс не может получить доступ к файлу bin \ Debug \ ClassLibrary.dll, потому что он используется другим процессом.

Если я завершу процесс MSBuild.exe, все будет работать нормально (пока я не изменю что-нибудь в ClassLibrary и не попытаюсь создать решение)

Я пробовал события до и после сборки с

taskkill / F / IM MSBuild.exe

Но не работает, просто появились новые ошибки. Я предполагаю, что это связано с закрытием MSBuild itsefl.

Вы хоть представляете, как решить эту проблему, или хотя бы в чем причина такого поведения MSBuild?


person semidude    schedule 07.09.2017    source источник


Ответы (1)


Похоже, проблема возникает из-за FodyWeaver.

Цитата из страницы проекта на GitHub:

Не поддерживается:

[...]

  • Проекты, сочетающие старый формат .csproj с новым _ 1_ узлов.

Я думаю, что Фоди просто лажает с процессом сборки. Возможно, он выполняет что-то вроде задачи сборки (как предложил @Crowcoder), и поэтому MSBuild блокирует dll.

После переключения обратно на packages.config проблема исчезла.

person semidude    schedule 07.09.2017
comment
Не все владельцы пакетов тестировали свои пакеты с новой моделью, поэтому такие проблемы могут возникнуть. Вы можете сообщить об этом ребятам из Fody, чтобы они исправили ошибку в следующем выпуске. - person Lex Li; 08.09.2017