gpt4 book ai didi

msbuild - 将解决方案升级到 .NET 框架 4.5 后,日常部署停止工作

转载 作者:行者123 更新时间:2023-12-04 14:31:20 25 4
gpt4 key购买 nike

我们成功地使用 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=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:用户名=用户名
/p:密码=密码
/p:UseMsdeployExe=True
E:\Builds\1\WhatEver\Daily_Build\Sources\My.Web\My.Web.csproj

现在我还尝试从我们的 TFS 运行上述 msbuild 命令,但没有任何响应,这让我感到非常沮丧。 TFS 的事件日志中没有任何内容,无论冗长,日志文件中都没有内容......有任何想法吗?

它确实使用 msdeploy 直接工作,如下所示;
<Exec Command="&quot;C:\Program Files\IIS\Microsoft Web Deploy V3\MSDeploy.exe&quot; -verb:sync -source:contentPath=&quot;E:\Builds\1\WhatEver\Daily_Build\Sources\My.Web\My.Web.csproj&quot; -dest:contentPath=&quot;E:\dev.my.web&quot;,computername=https://10.xxx.xxx.xxx:8172/MsDeploy.axd,username=UserName,password=Password,authtype=Basic -allowUntrusted=True"
ContinueOnError="false" />

--

更新 2 --
由于输出类型是类库,因此 Microsoft 似乎添加了一项检查,以检查哪些类型的项目是可发布的项目,而我们的 Web 应用程序不是。这对 v4.0 有效,但显然不适用于 v4.5。

任何人都知道该怎么做才能让它再次工作?我需要更改项目类型吗?预先创建发布包然后部署它?或者是什么?

--

还有其他人遇到过同样的问题吗?您找到解决方案了吗?

MSBuild 的版本会不会有问题?

最佳答案

这是我要推荐的。在 VS2012 中,我们可以使用发布对话框创建的发布配置文件轻松自动发布您的 Web 项目。在您的情况下,创建一个新的 MSDeploy 配置文件。当您创建该配置文件时,我们会将设置保存到 Properties\PublishProfiles(或 VB 的 My Project\PublishProfiles)下的文件中。此文件的扩展名为 .pubxml。这些文件实际上是 MSBuild 文件,您可以根据需要对其进行自定义。您也可以继续使用发布对话框。密码将存储在 .user 文件中并进行加密,以便只有您可以解密。

创建该配置文件后,如果您正在构建 .sln 文件,则可以使用以下命令进行发布。

msbuild mysoln.sln /p:DeployOnBuild=true /p:PublishProfile=<ProfileName> /p:Password=<Password>

如果您正在构建 .csproj/.vbproj 那么您需要按以下方式稍微调整一下
msbuild mysoln.sln /p:DeployOnBuild=true /p:PublishProfile=<ProfileName> /p:Password=<Password> /p:VisualStudioVersion=11.0

更多关于为什么需要 VisualStudioVersion 的信息,请访问 http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx .

完成此操作后,您将能够像以前一样构建+发布。仅供引用,我们已经在 Azure SDK 中为 VS2010 提供了所有这些新的 Web 发布功能 https://www.windowsazure.com/en-us/develop/net/# .

同样在您的问题中,我注意到您正在指定一些自定义属性,例如 MvcBuildViews。如果需要,您现在可以将这些属性直接放在发布配置文件(.pubxml 文件)中。当然,如果这对您的场景更有意义,您仍然可以在命令行上传递它们。

更多信息请访问 http://sedodream.com/2012/06/15/VisualStudio2010WebPublishUpdates.aspx .

如果您看一下我们为开发人员自动发布的方法,它是指定要在构建期间执行的属性和目标。这种方法的问题在于,这限制了我们增强网络发布体验的能力。在新版本中,我们引入了一个抽象,即发布配置文件,它允许我们更改 Web 发布管道的底层目标,并且您的自动化脚本将继续运行。希望从现在开始,您不必重新访问此问题。

关于msbuild - 将解决方案升级到 .NET 框架 4.5 后,日常部署停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com