Per*_*Per 6 msbuild msdeploy tfs2010 webdeploy .net-4.5
我们成功地使用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"
/>
Run Code Online (Sandbox Code Playgroud)
启动升级并且我的问题发现我们使用的是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 \无论\ Daily_Build的\ Sources\My.Web\My.Web.csproj
现在我也尝试从我们的TFS运行上面的msbuild命令,没有任何响应让我完全失望.在TFS的事件日志中没有任何内容,日志文件中没有任何内容,无论冗长...有什么想法吗?
它确实可以使用msdeploy directy,如下所示;
<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" />
Run Code Online (Sandbox Code Playgroud)
-
更新2 - 似乎Microsoft添加了对可发布项目的类型项目和我们的Web应用程序不是的检查,因为输出类型是类库.这对v4.0有效,但显然不适用于v4.5.
任何人都知道该怎么做让它再次起作用?我需要更改项目类型吗?预先创建发布包,然后部署它?或者是什么?
-
有其他人遇到过同样的问题吗?你找到了分享的解决方案吗?
MSBuild版本可能存在问题吗?
这是我推荐的.在VS2012中,我们使用发布对话框创建的发布配置文件轻松自动发布Web项目.在您的情况下,创建一个新的MSDeploy配置文件.创建该配置文件时,我们会将设置保存到Properties\PublishProfiles(或My Project\PublishProfiles for VB)下的文件中.该文件的扩展名为.pubxml.这些文件实际上是MSBuild文件,您可以根据需要自定义它们.您也可以继续使用发布对话框.密码将存储在.user文件中并加密,以便只有您可以对其进行解密.
创建该配置文件后,如果要构建.sln文件,则可以使用以下命令进行发布.
msbuild mysoln.sln /p:DeployOnBuild=true /p:PublishProfile=<ProfileName> /p:Password=<Password>
Run Code Online (Sandbox Code Playgroud)
如果您正在构建.csproj/.vbproj,那么您需要通过以下方式稍微调整一下
msbuild mysoln.sln /p:DeployOnBuild=true /p:PublishProfile=<ProfileName> /p:Password=<Password> /p:VisualStudioVersion=11.0
Run Code Online (Sandbox Code Playgroud)
有关为什么需要VisualStudioVersion的更多信息,请访问http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx.
一旦你这样做,你将能够像以前一样构建+发布.仅供参考我们已在Azure SDK https://www.windowsazure.com/en-us/develop/net/#中为VS2010发布了所有这些新的Web发布功能.
同样在你的问题中,我注意到你正在指定一些自定义属性,比如MvcBuildViews.现在,您可以根据需要将这些属性直接放在发布配置文件(.pubxml文件)中.当然,如果对您的场景更有意义,您仍然可以在命令行中传递它们.
有关详情,请访问http://sedodream.com/2012/06/15/VisualStudio2010WebPublishUpdates.aspx.
如果您看一下开发人员自动发布的方法,那就是指定在构建期间要执行的属性和目标.这种方法的问题在于这限制了我们增强Web发布体验的能力.在新版本中,我们引入了一个抽象,即发布配置文件,它允许我们更改Web发布管道的基础目标,并且您的自动化脚本将继续运行.希望从这一点开始,你不必重新访问这个问题.
| 归档时间: |
|
| 查看次数: |
4434 次 |
| 最近记录: |