发布在构建定义 VS2012 中不起作用
Posted
技术标签:
【中文标题】发布在构建定义 VS2012 中不起作用【英文标题】:Publish doesn't work from build definition VS2012 【发布时间】:2013-07-18 21:59:22 【问题描述】:我认为很简单的事情并非如此。我要做的就是让 MSBuild 在我构建后将网站文件复制到另一台服务器。
在我的构建定义下 Process --> Advance --> MSBuild Arguments 我把
/p:DeployOnBuild=true /p:PublishProfile=WebsiteProfile
它构建得很好,但它从不将文件复制到目标
但是当我在本地运行这个命令时,它可以工作!!!!!
msbuild /p:DeployOnBuild=true /p:PublishProfile=WebsiteProfile
我在 Build Server 中安装了 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;"
复制步骤
-
创建了新的网站项目
确保它在本地机器上工作
使用开发服务器
TFS 中的检查代码
使用进程下的所有默认设置创建了构建定义 -->
Advance --> 我提出的 MSBuild 参数
/p:DeployOnBuild=true /p:PublishProfile=WebsiteProfile
发布配置文件将变更集复制到远程服务器。
【问题讨论】:
听起来像是许可的事情。构建代理在目标服务器上是否具有适当的权限? 我该如何检查? 【参考方案1】:在我阅读了post 和Scott Gu's Blog 之后,在构建服务器上安装 Web Tools 2012.2 更新为我解决了这个问题。我没有在服务器上安装 Visual Studio,但安装更新让我的 DeployOnBuild 工作。我希望这会有所帮助。
【讨论】:
以上是关于发布在构建定义 VS2012 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Tailwind 自定义颜色在 Angular 生产构建中不起作用