2013-07-18 34 views
2

我认为简单的不是。我所要做的就是让MSBuild在构建完成后将网站文件复制到另一台服务器上。从构建定义发布不起作用VS2012

在我的生成定义在过程 - >高级 - >的MSBuild参数我把

/P:DeployOnBuild = TRUE/P:PublishProfile = WebsiteProfile

它建立精细但它从来没有复制文件到目的地

但是当我运行这个命令本地,它工作!!!!!

的MSBuild/P:DeployOnBuild = TRUE/P:PublishProfile = WebsiteProfile

我有VS 2012安装在构建服务器,所以我认为所有需要的文件都在那里。

什么问题?

更新1

在生成日志文件输出

运行的MSBuild项目

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe /nologo /noconsolelogger "C:\Builds\1\MyProject\MyProject\src\MyProject.sln" /nr:False /fl /flp:"logfile=C:\Builds\1\MyProject\MyProject\src\MyProject.log;encoding=Unicode;verbosity=detailed" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:PublishProfile=WebsiteProfile /p:VisualStudioVersion=11.0 /m /p:OutDir="C:\Builds\1\MyProject\MyProject\bin\\" /p:RunCodeAnalysis="False" /p:VCBuildOverride="C:\Builds\1\MyProject\MyProject\src\MyProject.sln.vsprops" /dl:WorkflowCentralLogger,"E:\Microsoft Team Foundation Server 11.0\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Detailed;BuildUri=vstfs:///Build/Build/64;InformationNodeId=20178;TargetsNotLogged=GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath;TFSUrl=http://abc-tfs-p:8080/tfs/defaultcollection;"*WorkflowForwardingLogger,"E:\Microsoft Team Foundation Server 11.0\Tools\Microsoft.TeamFoundation.Build.Server.Logger.dll";"Verbosity=Detailed;" 

繁殖STEPS

  1. 创建新网站项目
  2. 确信它的工作本地机器 使用开发服务器
  3. 经过代码在TFS
  4. 创建使用所有默认设置下的进程生成定义 - >高级 - >参数的MSBuild我把

/p:DeployOnBuild = TRUE/p:PublishProfile = WebsiteProfile

发布配置文件复制变更到远程服务器。

+0

听起来像许可的事情。构建代理是否在目标服务器上具有适当的权限? –

+0

我该如何检查? –

回答

2

在生成服务器上安装Web Tools 2012.2更新后,我在阅读此postScott Gu's Blog后解决了此问题。我没有在服务器上安装Visual Studio,但安装更新后,我的DeployOnBuild正常工作。我希望有所帮助。