我发现Web Deployment Projects
不支持Visual Studio 2012
。阅读this article后,我尝试让Publish Profiles
工作。
安装Visual Studio Web Publish Update后,我可以使用Visual Studio 2012
中的新发布对话框发布网站项目和Web应用程序项目。
因为我们正在使用TFS 2010 Team Build
,所以我尝试通过MSBuild
参数使用发布配置文件。但以下声明仅适用于发布Web应用程序项目。
MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml
如果我尝试发布网站项目没有任何反应。我的网站项目的发布配置文件仅适用于Visual Studio 2012
中的新发布对话框,但不适用于调用MSBuild
。
有什么想法吗?
答案 0 :(得分:6)
我花了大约3个星期在自己的环境中与此搏斗,并认为我有一个解决方案。
我认为问题在于,当您传入解决方案时,网站.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>
这样做是当MSBuild开始构建解决方案文件时,它实际上在内存中创建了一个扩展名为 metaproj 的MSBuild文件。有一些方法可以让MSBuild将此文件保存到磁盘,以便您可以检查它,但这很容易在谷歌上找到。在第一步中创建的文件将注入 metaproj 文件,并在构建后运行。
这是我能够获得新的发布配置文件的唯一方法,以便为我提供旧的Web部署预测所带来的输出。
警告字:如果要在TFS构建中使用它,那么在这种情况下,您将在放置位置获得一个_PublishedWebsites文件夹,与您在pubxml文件中指定的PublishUrl无关。这是我试图解决的问题,但到目前为止,并没有太多的快乐。
答案 1 :(得分:1)
我遇到了和上面完全相同的问题。我删除了以下密钥和Automated构建开始正常工作。
**<Content Include="website.publishproj" />**