2014-10-28 4 views
0

Я пытаюсь создать проект ASP.NET MVC через командную строку.MSBuild: MSB3061 - не удается получить доступ к файлу, потому что он используется другим процессом

Я бег команды: msbuild /p:platform="Any CPU"

В проекте мы используем конфигурацию преобразование с MSBuild. Мы событие Pre-сборки вида: "$(MSBuildBinPath)\msbuild.exe" "$(ProjectDir)[MSBuild]\BuildSpecificConfigTransforms.xml" /p:Configuration=$(ConfigurationName)

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

(PreBuildEvent target) -> 
    C:\Users\xxxx\Development\EPiServer\GIT\xxxx\xxxx\[MSBuild]\BuildSpecificConfigTransforms.xml(86,5): error MSB3061: Unable to delete file "..\connectionStrings.config.temp". The process 
    cannot access the file 'C:\Users\xxxx\Development\EPiServer\GIT\xxxx\xxxx\connectionStrings.config.temp' because it is being used by another process. [path-to-csproj-file] 

Кто-нибудь есть идеи, что это такое?

+0

Вы вызываете свой 'BuildSpecificConfigTransform.xml' из нескольких проектов? Это может объяснить проблему. –

+0

@SevaTitov Не так далеко, как я могу видеть, я могу смотреть дальше. – ptf

ответ

0

Я столкнулся с этой ошибкой во время моей автоматизации развертывания ASP.NET MVC с помощью MSBuild.

Не могли бы вы проверить, если

1) BuildSpecificConfigTransform.xml открыт в любом IDE (VS2012) или инструмента (например, блокнота и т.д.) в течение времени, когда вы запустите сборку.

2) BuildSpecificConfigTransform.xml находится в управляющем приложении iis (win key + R и type inetmgr), которое работает. Если да, остановите iis и запустите этот скрипт.

3) (Редкий случай) Имеет ли файл достаточное разрешение?

Буду рад, если это сработает.

+0

Я пробовал все 3, и никто не работал. Я запускал командную строку в режиме администратора, это достаточно хорошо для №3? – ptf

+0

Запуск как администратора достаточно. 'connectionStrings.config.temp' - Не могли бы вы также проверить вышеуказанные шаги для этого файла. Позвольте мне проверить и вернуться к вам в ближайшее время. Несомненно, что 'connectionStrings.config.temp' управляется процессом параллельно. – codingninja

+0

Мы можем попытаться удалить файл вручную, создав цель. ' <Удалить файлы =" C: \ Users \ xxxx \ Development \ EPiServer \ GIT \ xxxx \ xxxx \ connectionStrings.config.temp»ContinueOnError = "ложь"/> ....... Ваш prebuild код ........ ... ' Просьба ответить, если он еще не работает. – codingninja