2014-10-28 217 views
0

我試圖通過命令行構建ASP.NET MVC項目。MSBuild:MSB3061 - 由於它被另一個進程使用而無法訪問文件

我運行這個命令:msbuild /p:platform="Any CPU"

在該項目中,我們使用的配置轉換與MSBuild的。 我們有一個預生成事件看起來像這樣:"$(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'?這可能解釋了這個問題。 – 2014-10-29 15:05:25

+0

@SevaTitov據我所知,我可以稍後再看。 – ptf 2014-10-30 11:05:29

回答

0

我在使用MSBuild進行ASP.NET MVC部署自動化期間遇到了這個錯誤。

你能檢查是否

1)BuildSpecificConfigTransform.xml在任何IDE(VS2012)或工具(例如,開放的:記事本等)在你運行構建的時間。

2)BuildSpecificConfigTransform.xml位於正在運行的iis管理器(win + R和鍵入'inetmgr')應用程序中。如果是這樣,停止iis並運行此腳本。

3)(稀有情況)文件是否具有足夠的權限?

如果這能起作用,我會很高興。

+0

我試了3個,都沒有工作。我以管理員模式運行命令行,對於#3是否足夠好? – ptf 2014-10-30 11:03:28

+0

作爲管理員運行就足夠了。 'connectionStrings.config.temp' - 你可以檢查這個文件的上述步驟嗎?讓我檢查並儘快回覆。可以肯定的是'connectionStrings.config.temp'是由一個進程並行運行的。 – codingninja 2014-10-30 19:54:55

+0

我們可以嘗試通過創建目標手動刪除文件。 <>刪除文件=「C:\ Users \ xxxx \ Development \ EPiServer \ GIT \ xxxx \ xxxx \」目標名稱=「刪除」DependsOnTargets =「$(您的目標在當前構建腳本的PreBuildEvent之上)」> connectionStrings.config.temp」 ContinueOnError = 「假」/> <目標名稱= 「PreBuildEvent」 DependsOnTargets = 「刪除」> .......你的預生成碼........ ... ' 請回復,如果它仍然無法正常工作。 – codingninja 2014-10-30 20:17:57

相關問題