Visual Studio 2013网站项目 - 在Configuration Manager中更改配置

时间:2015-02-12 22:41:47

标签: visual-studio-2013 configurationmanager

我在Visual Studio 2013中有网站项目。我有两个发布配置文件,一个用于登台,另一个用于制作。在Configuration Manager中,我可以创建新的Active Solution Configurations但不能将新配置添加到我的下拉列表中,Debug是唯一的选项。

所以现在当我尝试使用我的生产配置文件发布时,web.config正在被Web.Debug.Config和我的web.Production.Config转换。

如何在下拉列表中添加新配置?

enter image description here

3 个答案:

答案 0 :(得分:4)

  

如何在下拉列表中添加新配置?

你做不到。至少不是为了你需要使用这些新配置。

我会假设你真的需要知道这个:

  

如何在没有通过调试转换将debug标志应用于web.config的情况下发布网站?

这已经发生了,只是一种令人困惑的方式。


使用“发布网站”向导发布网站时,它会将适当的转换应用于web.config。在您的情况下,Web.Debug.ConfigWeb.Production.Config

现在是令人困惑的部分:

默认情况下,web.debug.config实际 debug移除 web.config属性。

<compilation xdt:Transform="RemoveAttributes(debug)" />

由于遗留原因,这与丢失的网站项目文件和底层构建工具有关。


如果要停止正在应用的调试转换,则其中没有自定义配置,您可以删除web.debug.config。请务必添加

<compilation xdt:Transform="RemoveAttributes(debug)" />

在每个特定于环境的转换(<system.web>等)的web.Production.Config元素内。


我的建议是:

  • 保持web.debug.config不受影响。处于默认状态。
  • 为每个环境创建发布配置文件。
  • 为每个发布配置文件(web.<configuration>.config
  • 添加转换
  • 将任何特定于环境的配置放入相应的转换文件中。

答案 1 :(得分:2)

要让我的发布设置按照我希望的方式运行:

  • 将web.debug.config返回到它的默认内容(我在这里进行了一些我用于登台环境的转换)
  • 对于/ App_Data / PublishProfiles /中的每个发布配置文件,右键单击并选择Add Config Transform以在站点的根目录下创建新的配置文件(请注意,除非配置文件,否则它不会嵌套在默认的web.config下标题为调试或发布,如果你问我,有点奇怪)
  • 为每个新配置添加任何相关的转换

由于网站项目中的所有发布配置文件似乎都停留在调试配置上,因此我无法避免web.debug.config转换我的默认web.config。使用此解决方案,我们只是不使用web.config进行特定于发布的转换。

我想感谢克里斯·奥尼尔(Chris O'Neill)提供的有用的,如果详细的答案,这些答案让我了解了这个解决方案。

答案 2 :(得分:1)

您可以手动修改/创建项目FSUResearch的配置。步骤是:

在解决方案资源管理器中: 右键单击项目 - &gt;卸载项目 - &gt;右键单击FSUResearch(不可用) - &gt;单击Edit FSUResearch.csproj

在此文件中,您会看到许多'PropertyGroup'标记。这些PropertyGroup由配置和平台的不同组合组成。因此,创建一个新的PropertyGroup并提供您自己的项目配置。确保提供已经是解决方案配置名称的项目配置名称(了解build configurations)。

例如:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Production|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>

保存更改,然后再次右键单击.csproj文件并重新加载项目。