我们已经成功地每天使用 TFS2010 中的 msdeploy 更新我们的开发网站。
在我们升级到 VS2012,我们的应用程序从 .NET Framework 4.0 到 4.5 和 ASP.NET MVC 从 3.0 到 4.0 之前,这一切正常。看起来一切都很好,并且部署了程序集,但实际上并没有部署任何东西。
我已经研究了两天了,无法弄清楚为什么会发生这种情况,现在我的想法已经不多了。
以下是我的构建脚本的一部分,它在升级之前一直在工作。
<MSBuild
Projects="$(SolutionRoot)\My.Web\My.Web.csproj"
Properties="MvcBuildViews=False;AllowUntrustedCertificate=True;AuthType=Basic;Configuration=Dev;CreatePackageOnPublish=True;DeployIisAppPath=dev.myweb;DeployOnBuild=True;DeployTarget=MsDeployPublish;MSDeployPublishMethod=WMSvc;MsDeployServiceUrl=https://10.xxx.xxx.xxx:8172/MsDeploy.axd;UserName=UserName;Password=Password;UseMsdeployExe=True"
ContinueOnError="False"
/>
当升级开始并发现我的问题时,我们使用的是 Web Deploy 2.0,但现在我们已经升级到 Web Deploy 3.0。我还确保我们正在使用ToolsVersion="4.0"
.
更新 -
msbuild.exe /p:AllowUntrustedCertificate=True /p:AuthType=Basic /p:Configuration=Dev /p:CreatePackageOnPublish=True /p:DeployIisAppPath=dev.myweb /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p: MSDeployPublishMethod=WMSvc /p:MsDeployServiceUrl=https://10.xxx.xxx.xxx:8172/MsDeploy.axd /p:UserName=UserName /p:Password=Password /p:UseMsdeployExe=True E:\Builds\1\ WhatEver\Daily_Build\Sources\My.Web\My.Web.csproj
现在我还尝试从我们的 TFS 运行上面的 msbuild 命令,但没有任何响应,这让我完全感到沮丧。TFS 的事件日志中没有任何内容,无论详细程度如何,日志文件中都没有任何内容......有什么想法吗?
它确实使用 msdeploy 直接工作,如下所示;
<Exec Command=""C:\Program Files\IIS\Microsoft Web Deploy V3\MSDeploy.exe" -verb:sync -source:contentPath="E:\Builds\1\WhatEver\Daily_Build\Sources\My.Web\My.Web.csproj" -dest:contentPath="E:\dev.my.web",computername=https://10.xxx.xxx.xxx:8172/MsDeploy.axd,username=UserName,password=Password,authtype=Basic -allowUntrusted=True"
ContinueOnError="false" />
--
更新 2 - 微软似乎添加了检查哪些类型的项目是可发布的项目,而我们的 Web 应用程序不是,因为输出类型是 Class Library。这对 v4.0 有效,但显然不适用于 v4.5。
任何人都知道该怎么做才能让它再次工作?我需要更改项目类型吗?预先创建发布包然后部署它?或者是什么?
--
还有其他人有同样的问题吗?你找到解决方案分享了吗?
MSBuild的版本可能有问题吗?