2012-11-06 131 views
19

我正在使用Visual Studio 2012和發佈功能。我創建了一個發佈配置文件,將我的應用程序部署到一個開發服務器,並且在我的機器上從vs2012執行時效果很好。這是我的問題;在開發服務器上,我也安裝了TeamCity,並且我想在構建完成後觸發發佈。所以,我創建了一個簡單的生成步驟,看起來像這樣:從TeamCity發佈vs2012解決方案

Build file path: .\src\Solution.sln 
Targets: Rebuild 
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci 

當此步執行我收到以下錯誤:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 

詞配置文件包含用戶名和密碼,當我運行工作在我的機器上從Visual Studio發佈。我也嘗試在構建步驟中傳入用戶名和密碼作爲參數,但我得到了相同的結果。我是否需要在管理員帳戶下運行TeamCity服務才能使其工作?所有的建議表示讚賞。

回答

12

我剛剛在博客http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx上發表了博客。

你很接近,希望我能縮小差距。

您在VS發佈對話框中指定了用戶名和密碼是正確的,但我們不會將密碼保存在.pubxml文件中。它目前保存在.pubxml.user文件中,並且該文件根本不用於命令行場景。正因爲如此,你將需要通過財產。所以你的情況應該是

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password> 

如果您的Web服務器沒有,你可能還需要通過在/p:AllowUntrustedCertificate=true信任的證書。

一小部分可能與您的問題沒有直接關係,但可能對其他人有所幫助,可能會在稍後看到。 如果您正在構建.csproj/.vbproj文件(,並且可能在使用.sln文件的某些情況下爲),則應通過屬性/p:VisualStudioVersion=11.0。更多信息可在我的博客http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx

相關問題