发布配置文件不会发布所需的构建配置(.pubxml.user)

时间:2013-03-21 16:41:15

标签: asp.net deployment version-control visual-studio-2012 publish-profiles

考虑以下情况:

  • Alice使用Visual Studio 2012创建Web应用程序(ASP.NET MVC或WebForms)。
  • Alice创建了一个名为" PRODUCTION"并选择"发布" “设置”选项卡中的配置(在“发布向导”中)。
  • Alice使用名为" PRODUCTION"。
  • 的发布配置文件发布应用程序
  • Alice将解决方案保存到源代码管理中。

请注意,默认情况下," *.pubxml.user"文件未包含在源代码管理中:http://msdn.microsoft.com/en-us/library/ff398069.aspx

  • Bob从源代码管理中检出解决方案。
  • Bob打开解决方案并启动发布向导。
  • Bob看到所选的发布配置文件被调用" PRODUCTION"。
  • Bob点击“设置”标签(在“发布向导”中),看到显示的配置为"发布"
  • Bob发布了该应用程序。
  • Bob意识到应用程序是使用" Debug"配置而不是"发布"构造

原因是有关构建配置的信息存储在文件&#34; *.pubxml.user&#34; (请参阅名为<LastUsedBuildConfiguration>的节点)。

此行为存在问题,尤其是当您使用Web配置转换(&#34; Web.Release.config&#34;)更改连接字符串时。

=&GT; 如果我不想保存&#34; *.pubxml.user&#34;我该怎么办?文件到源代码管理(因为这个文件可能包含不适合公共存储库的其他信息)?

相关文章:

2 个答案:

答案 0 :(得分:11)

这有两个方面;在“发布”对话框的下拉列表中共享值并支持命令行。以下是我对两者的评论。

与团队成员共享个人资料

当我们在VS2012 RTM中发布发布位时,我们将LastUseBuildConfiguraiton写入.pubxml.user文件。之后我们将其移动到.pubxml文件本身,以便与其他团队成员共享。您可以在以下位置获得最新版本:

  1. ASP.NET 2012.2
  2. Latest Azure SDK
  3. 如果您已经安装了其中一个,并且您仍然看到不共享Config的行为,可能是因为.pubxml是使用较旧的drop创建的。解决方案是删除.pubxml和.pubxml.user文件并使用最新文件再次创建。

    命令行方案

    对于命令行方案,需要显式设置Configuration属性。 .pubxml(或.pubxml.user)文件无法覆盖该值。有关详细信息,请参阅我的博客http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx

答案 1 :(得分:0)

如果您有此项目的备份,则无需担心此错误。只需在VS 2012或2013中运行备份项目并打开Property的节点然后发布Profile文件夹,然后您将看到名称为“Your project name.xml”的单个文件现在转到解决方案资源管理器菜单按下按钮“显示所有文件”,您可以看到名为“pubxml.user”的其他文件。现在右键单击发布配置文件,然后单击“在文件浏览器中打开文件夹”选项,立即复制该文件并将其替换为崩溃文件。

现在重建项目,然后发布它。

我今天在这个项目中遇到了这个问题Hajj and Umrah Project现在你可以看到它已经存在了。