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

Ubi*_*ity 8 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"配置而不是"Release"配置发布的.

原因是有关构建配置的信息存储在文件" *.pubxml.user"中(请参阅调用的节点<LastUsedBuildConfiguration>).

当您使用Web配置转换("Web.Release.config")更改连接字符串时,此行为是有问题的.

=> 如果我不想将" *.pubxml.user"文件保存到源代码控制中,如何解决此问题(例如,因为此文件可能包含不适合公共存储库的其他信息)?

相关文章:

Say*_*imi 11

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

与团队成员共享配置文件

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

  1. ASP.NET 2012.2
  2. 最新的Azure SDK

如果您已安装其中一个并且仍然看到Config未共享的行为,可能是因为.pubxml是使用较旧的drop创建的.解决方案是删除.pubxml和.pubxml.user文件,并使用最新文件再次创建它.

命令行场景

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