ASP.Net Web应用程序添加配置变换灰显

时间:2012-06-14 16:08:44

标签: asp.net web-config transform

我在我的解决方案中添加了一个现有的ASP.Net Web应用程序项目。除了标准的调试和发布配置,该解决方案还有两个自定义配置,SAT和UAT。对于新的Web应用程序,右键单击Web.Config显示上下文菜单,但“添加配置转换”选项显示为灰色。

我很茫然。新项目是一个Web应用程序。 Configuration Manager不显示此项目的两个自定义配置,但它适用于其他项目。该项目似乎在解决方案文件中具有正确的条目。

思想?

6 个答案:

答案 0 :(得分:100)

您必须先在Configuration Manager中定义配置。要确保您打开配置管理器,可以访问:Build-> Configuraton Manager

来访问它。

Active Solution Configuration 下拉列表中,选择<New...>。添加完成后,您就可以“添加配置转换”。

请勿直接编辑解决方案文件。它只会引起头痛。

答案 1 :(得分:37)

当我们使用PublishProfiles时,对我来说,答案是右键单击相关的pubxml文件(在项目文件夹Properties子文件夹PublishProfiles中找到),然后选择{{1} }。没有管理者需要;)。

答案 2 :(得分:14)

就我而言,在Visual Studio 2015中,当我基于项目模板创建新解决方案时,添加配置转换显示为灰色 - 但原因不同:

点击“显示所有文件”显示文件已存在 - 仅隐藏。因此,按钮显示为灰色(因为没有必要添加它们,因为它们已经存在)。

  1. 点击“显示所有文件”图标:
    enter image description here

  2. 现在您可以展开“Web.config”:
    enter image description here

  3. 双击任何转换文件(Web.Debug.configWeb.Release.config)以打开并编辑它。

  4. 注意:

    • 我不想添加其他配置,只需使用 Debug Release 即可。如果您创建一个,选择它,并且转换文件尚不存在,则上下文菜单项添加配置转换处于活动状态且不会显示为灰色。

    • 如果您想创建其他配置转换文件,请记住在Visual Studio中,配置转换与配置相关联。要添加另一个转换,您需要先添加新配置。要添加另一个,请执行以下操作:通过配置管理器(您可以选择调试或发布的下拉列表),首先添加新配置,例如myNewConfig。然后选择myNewConfig。现在在Solution Explorer中选择Web.config,右键单击并在上下文菜单“Add Config Transform”中选择 - 它将创建Web.myNewConfig.config。一旦存在,上下文菜单将再次变灰,因为VS每个配置只允许一次转换。

答案 3 :(得分:1)

要使其正常工作,我必须将新的属性组添加到我的csproj文件中。

添加配置转换显示为灰色。

我在csproj中添加了以下XML并重新加载了项目。然后添加配置转换可用。选择之后,我的附加变换就添加了

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'IAT_CMCD|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'UAT_CM|AnyCPU'">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

答案 4 :(得分:0)

我通过实现两件事解决了这个问题:

  1. 存在解决方案级别的配置,并且具有 Project 级别的配置。 web.MyConfigName.config是基于项目级别的配置创建的。
  2. 似乎Visual Studio 2017 Configuration Manager会基于要从(隐藏)obj文件夹添加的配置。删除项目的obj文件夹并重建将使用您添加的配置更新项目。

要使“添加配置转换”选项可用,请按照以下步骤操作:

  1. 确保已启用显示隐藏文件
  2. 打开解决方案
  3. 的配置管理器
  4. 选择相关的解决方案配置,然后在项目旁边的下拉菜单中选择<New..><Edit..>,然后添加,删除或编辑 Project >您想要的配置。
  5. 删除项目中的obj文件夹。重建。确保将更改保存到项目和解决方案文件中。我还重新启动了Visual Studio,因为为什么不这样做。确认您在obj文件夹中看到所有项目配置为文件夹。
  6. 右键单击web.config并添加您的配置转换。

希望它可以帮助某人。 :)

答案 5 :(得分:0)

如何启用“添加配置转换”选项。 请按照以下步骤操作。 步骤1:转到解决方案配置(团队以下) Go to Solution configuration (Below Team)

Step2:单击配置管理器 Click on configuration manager

Step3:从“活动解决方案配置”窗口中选择“新建” Select New from Active solution configuration window

第4步:现在为您的新商品(如Production / Staging)命名,并从“ Release”选项中选择复制设置。确保默认情况下未选中该复选框,然后单击确定。 Now give meaningful name to your new item like Production/Staging

第5步:现在返回您的解决方案资源管理器,然后右键单击Web.Config文件。 Add Config Transform is enable now

Hola!现在启用添加配置转换。 :)