2011-05-18 42 views
3

我們有一個TFS生成定義設置,我們通過以下額外的MSBuild論點:TFS構建 - 部署/包的目標不運行

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\server\build";AutoParameterizationWebConfigConnectionStrings=false 

這已在別處詳細,以此來已公佈文件複製到特定位置而不是生成部署包。

這不幸在我們的構建服務器上不起作用,但是如果我在我的開發機器上運行與TFS調用的命令行完全相同的msbuild命令行,那麼它完美地工作並將輸出文件複製到該位置。

我檢查了日誌文件,沒有錯誤,它似乎完全跳過了發佈/部署步驟。

Done building target "_BuiltWebOutputGroupOutput" in project "xyz.csproj". 
Target "PrepareForRun" in file "c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets" from project "C:\Builds\2\xyz\xyz build\Sources\xyz.Web\xyz.Web.csproj" (target "CoreBuild" depends on it): 

,而我的本地機器上,_BuiltWebOutputGroupOutput目標運行包的目標運行和正確部署後的文件。

我試過使用不同的路徑,甚至在項目文件中設置屬性,但它似乎沒有任何區別。我的本地解決方案和項目文件與TFS版本使用的存儲庫中的相同。在我們的構建服務器上還是與構建代理有關的配置會導致包裝目標不能運行?

+0

您是否試過在生成機器本身上運行相同的MSBuild命令? MSBuild版本是否與您的開發者版和編譯機相匹配? – 2011-05-18 20:02:12

+0

MSBuild版本在兩臺機器上都是一樣的 - 4.0.30319.1。 .NET Framework版本是相同的。我已經在構建服務器上用相同結果的各種選項手動運行msbuild,將忽略PackageTempDir。 – Rowan 2011-05-20 14:13:08

+0

在構建機器上,MSBuild作爲「網絡服務」帳戶運行,這可以起到重要作用。我還會驗證TFS Build是否構建了與您在命令行上構建的配置和平臺相同的配置和平臺。最後,你是否從TFS構建中檢查了MSBuild日誌文件? – 2011-05-21 00:37:36

回答

2

我今天有類似的問題,發現一個修補程序,所以它可能值得一看。 Here

+0

重溫這個爲另一個項目和您鏈接解決問題的解決方案 - 我錯過了具有必要目標的構建服務器上的C:\ Program Files文件(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web文件夾發佈。 – Rowan 2011-11-11 16:54:48

相關問題