【发布时间】:2012-10-18 13:34:13
【问题描述】:
我们已经成功地每天使用 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=基本 /p:配置=开发 /p:CreatePackageOnPublish=真 /p:DeployIisAppPath=dev.myweb /p:DeployOnBuild=真 /p:DeployTarget=MsDeployPublish /p:MSDeployPublishMethod=WMSvc /p:MsDeployServiceUrl=https://10.xxx.xxx.xxx:8172/MsDeploy.axd /p:用户名=用户名 /p:密码=密码 /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 应用程序不是。这对 v4.0 有效,但显然不适用于 v4.5。
有人知道如何让它再次工作吗?我需要更改项目类型吗?预先创建发布包然后部署它?还是什么?
--
其他人有同样的问题吗?你找到解决方案了吗?
会不会是 MSBuild 的版本有问题?
【问题讨论】:
-
您的构建日志中是否有任何类型的错误消息,或者部署只是默默地没有发生?
-
不幸的是没有,它只是默默地没有发生。实际上,获得某种反馈确实会有所帮助。即使使用详细诊断,构建文件中也没有任何内容。
-
对
msdeploy.exe的调用是否出现在 msbuild 输出中? -
不,它没有。有关我自己的研究,请参阅上面的更新。
-
如果您仍然需要帮助,请告诉我,以便我直接与您合作。
标签: msbuild .net-4.5 msdeploy webdeploy