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

请考虑以下情形:

> 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”文件保存到源代码管理中,那么如何解决此问题(例如,因为此文件可能包含不适合公共存储库的其他信息)?

相关文章

> http://connect.microsoft.com/VisualStudio/feedback/details/776066/publish-settings-windows-azure-publish-target-profiles-not-selecting-proper-build-configuration
> http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx
> http://msdn.microsoft.com/en-us/library/dd465337.aspx

解决方法

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

与团队成员共享配置文件

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

> ASP.NET 2012.2
> Latest Azure SDK

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

命令行方案

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

相关文章

ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的...
在之前的ASP.NET是如何在IIS下工作的这篇文章中介绍了ASP.NE...
这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...