Tho*_*ner 11 msbuild vs-web-site-project msdeploy publish-profiles
我认识到Web Deployment Projects不支持Visual Studio 2012.看完这篇文章后,我试着开始Publish Profiles工作.
安装Visual Studio Web发布更新后,我能够使用新的发布对话框发布网站项目和Web应用程序项目Visual Studio 2012.
因为我们正在使用TFS 2010 Team Build我试图通过MSBuild参数使用发布配置文件.但以下语句仅适用于发布Web应用程序项目.
MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml
Run Code Online (Sandbox Code Playgroud)
如果我尝试发布网站项目没有任何反应.我的网站项目的发布配置文件仅适用于新的发布对话框,Visual Studio 2012但不适用于调用时MSBuild.
任何的想法?
我花了大约3个星期在我自己的环境中与此搏斗,并认为我有一个解决方案.
我认为问题在于,当您传入解决方案时,site.publishproj文件从未真正构建过.我设法通过执行以下操作来解决此问题:
在名为after.MyWebs.sln.targets的解决方案文件旁边创建一个文件.该文件应如下所示:
<!--?xml version="1.0" encoding="utf-8"?-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Deploy Website" AfterTargets="Build">
<Message Text="Starting Website deployment" Importance="high">
</Message>
<MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj"
BuildInParallel="true" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)这样做的是,当MSBuild开始构建解决方案文件时,它实际上在内存中使用扩展元metaproj创建了一个MSBuild文件.有一些方法可以让MSBuild将此文件保存到磁盘,以便您可以检查它,但这很容易在谷歌上找到.在第一步中创建的文件将注入到metaproj文件中,并在构建之后运行.
这是我能够获得新的发布配置文件的唯一方法,以便为我提供旧的Web部署项目中的输出.
警告:如果要在TFS构建中使用它,那么在这种情况下,您将在放置位置获得一个_PublishedWebsites文件夹,与您在pubxml文件中指定的PublishUrl无关.这是我想要解决的问题,但到目前为止,并没有太多的快乐.
| 归档时间: |
|
| 查看次数: |
10292 次 |
| 最近记录: |