Командная строка Msbuild: ошибка MSB3021 в задаче CopyWebApplicationLegacy

#msbuild #msbuild-4.0

#msbuild #msbuild-4.0

Вопрос:

Я видел здесь несколько вопросов об этой ошибке, но все они, похоже, связаны с этой ошибкой типа «Доступ запрещен», не могу найти ничего, что связано с сообщением, которое я получаю:

C:Program FilesMSBuildMicrosoftVisualStudiov10.0WebApplicationsMicrosoft.WebApplication.targets(177,5): error MSB3021: Unable to copy file "binMyApp.MyLib.dll" to "C:TempPublishstagingMyAppMyApp_1478_5binMyApp.MyLib.dll". Could not find a part of the path 'binMyApp.MyLib.dll'. [C:TempTagsMyApp2011-10-27-00-NoBuildVssrcMyApp.comMyAppn.csproj]

Я получаю 30 таких ошибок при сборке своего проекта. Я создаю свой файл csproj из командной строки. Проект компилируется нормально, только когда он попадает в задачу CopyWebApplicationLegacy, все портится. Странная вещь: приложение работает нормально, и библиотеки DLL, которые оно пытается скопировать, в конечном итоге присутствуют в целевом каталоге. Таким образом, эти ошибки, похоже, не имеют никакого отношения к тому, попадают ли файлы туда, где они должны быть, или приложение будет вести себя правильно.

Я бы подумал о том, чтобы просто подавить их, но, похоже, это укусит меня позже.

Моя команда:

C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe "C:TempTagsMyApp2011-10-27-00-NoBuildVssrcMyApp.comMyApp.csproj" /p:OutDir="C:TempPublishbinOutput" /p:WebProjectOutputDir="C:TempPublishstagingMyAppMyApp_1478" /p:Configuration=Debug

Попытался создать решение вместо csproj и получил ту же ошибку.

Я здесь в тупике. Файлы не блокируются (если они каким-то образом не блокируются во время сборки и не освобождаются позже, но, похоже, я получу другую ошибку). Что может быть причиной этой ошибки? Мне нужно запустить это, чтобы моя автоматическая публикация могла работать.

Ответ №1:

Что я вижу из журнала ошибок: исходный файл «binDebugMyApp.MyLib.dll » следует использовать вместо «binMyApp.MyLib.dll » для настройки отладки, IMO.

Комментарии:

1. Хорошо, но как я могу настроить MSBuild, чтобы понять, что файлы bin находятся в папке Debug ?