升级解决方案,.NET框架4.5后的日常部署停止工作(After upgrading solutio

2019-08-01 14:50发布

我们已经成功使用了从msdeploy在TFS2010每天更新我们的开发网站。

这是工作的罚款,直到我们升级到VS2012,我们从.NET框架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部署2.0,但我们现在已经升级到Web部署3.0。 我也确信我们正在建设ToolsVersion="4.0"

UPDATE -

msbuild.exe / P:AllowUntrustedCertificate =真/ P:=进行AuthType基本/ 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 =真E:\构建\ 1 \无论\ Daily_Build的\ Sources \ My.Web \ My.Web.csproj

现在,我也试图从我们的TFS和完全让我很沮丧没有反应运行上面的MSBuild命令。 没有TFS中的事件日志,没有在日志文件中,无论冗长...任何想法?

它使用msdeploy directy像下面工作;

<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 -看来微软添加了什么类型的是发布的项目和我们的web应用项目的检查都没有,因为输出类型是类库 。 这已经与V4.0有效,但显然不是为V4.5。

任何人有什么就做什么使它重新工作的想法? 我是否需要更改项目类型? 创建出版包前面,然后部署? 或者是什么?

-

其他任何人有过同样的问题? 你找到一个解决方案分享?

莫不是用的MSBuild版本的问题吗?

Answer 1:

以下是我会推荐。 在VS2012我们已很容易实现自动化使用发布其由发布对话框创建的配置文件发布Web项目。 在你的情况下创建一个新的MSDeploy轮廓。 当你创建一个配置文件,我们将设置保存到下属性\ PublishProfiles(或我的项目\ PublishProfiles用于VB)的文件。 这个文件的扩展将是.pubxml。 这些文件实际上是MSBuild的文件,这在需要时您可以自定义。 您可以继续使用发布对话框为好。 该密码将被保存在一个文件中。用户和加密,这样只有您可以将其解密。

你已经创建之后,配置文件,你可以下面,如果你正在构建的.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 。

一旦你这样做,你将能够建立+发布,就像你以前一样。 仅供参考,我们已经发运了所有这些新的网络发布功能,为VS2010在Azure的SDK https://www.windowsazure.com/en-us/develop/net/# 。

另外,在你的问题,我注意到您指定了自定义属性,像MvcBuildViews。 现在,您可以直接将这些属性,如果你想发布配置文件(该文件.pubxml)内。 当然,你还可以通过他们在命令行上如果您的方案更有意义。

在这个更多信息http://sedodream.com/2012/06/15/VisualStudio2010WebPublishUpdates.aspx 。

如果你看看,我们不得不为开发者发布自动化,它是指定性质和指标的构建过程中要执行的方法。 这种方法的问题是,这限制了我们提升网络发布体验的能力。 在新的版本中,我们已经介绍了一个抽象,发布配置,这使我们能够改变网络的基本目标发布管道和你的自动化脚本将继续运行。 希望从这点出发,你将不必再访问这个问题。



Answer 2:

我今天有很多相同的问题。 我也试图让使用它安装了Visual Studio 2012是没有一个机器自动部署.NET 4.5的Web应用程序。 有一对夫妇在我的情况细微差别,但是:我是用的,而不是TFS TeamCity的,我们的解决方案与.NET 4.5中创建而不是作为一个已经从.NET 4.0升级。

不过,我也有同样的问题描述。 我使用的MSBuild构建Web应用程序,并部署到IIS,在几乎相同的方式。 这种方法的工作我的dev的机器罚款。 然而,当我跑的MSBuild的CI服务器上,它很乐意内置Web应用程序,但之后已停止:没有错误,没有警告,没什么,只是一个信息,即构建成功。 有没有在部署应用到IIS试图一丝淡淡的。

这似乎是的MSBuild缺少相关指标进行网络部署。 此修复程序是复制文件夹C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web从我的开发机器的CI服务器,将它复制到同一个地方的CI服务器上,因为它是在我的机器。

一旦我做到了,随后的MSBuild抱怨需要Web部署3.0,但是这是固定的很轻松了。 安装了CI服务器上过之后,MSBuild的很愉快部署Web应用程序。



Answer 3:

为了延长卢克伍德沃德的回答 :

我也发现,部署C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\从我的本地机器生成服务器被修复。

然而,真正的解决办法是安装Microsoft Web开发工具的VS 2012的安装,这将创建该文件夹,除其他事项外的一部分。 这解决Ieppie的授权异议。

我测试了这个由...

  1. 删除C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\
  2. 运行VS 2012的安装程序并添加MS的Web开发工具。
  3. 验证,在安装后, C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\又回来了。


文章来源: After upgrading solution to .NET framework 4.5 the daily deploy stopped working