ASP.Net Web应用程序添加配置转换为灰色


88

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

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

有什么想法吗?

Answers:


115

您必须首先在配置管理器中定义配置。为确保要启动Configuration Manager,可以通过以下方法访问它:Build-> Configuraton Manager

活动解决方案配置下拉列表中,选择<New...>。添加后,您将可以“添加配置转换”。

不要直接编辑解决方案文件。这只会引起头痛。


6
咄。我之前曾尝试过,但是未能取消选中“创建”框,因此它作为“重复项”失败。一旦取消选中“创建”框,它就会起作用。
paulv7260 2012年

@maplemale同样在这里,选项仍然灰色
安德斯·林登

很抱歉,我不记得我是如何工作的。我可能直接破解了sln文件,与杰里米的回答相反,有时这是唯一可行的选择。自升级到VS2015以来,我还没有遇到过这个问题。
maplemale

2
解决方案项目配置不同!您需要先在给定项目中创建配置,然后才能使用该转换。选中“创建新项目配置”以一次在所有项目中创建配置,或者像@ paulv7260一样单独进行配置。
Patrick

1
如果仍然显示为灰色,请确保您的Web项目的构建配置与解决方案配置的名称匹配,并确保已选择它。
jmatthias

45

在使用PublishProfiles时,对我而言,答案是右键单击相关pubxml文件(位于项目文件夹子文件Properties夹中PublishProfiles),然后选择Add Config Transform。不需要经理;)。


这个解决方案对我来说效果更好,因为我只希望添加此转换,没有别的。新的活动解决方案配置会影响解决方案中的所有项目,这与我的情况无关。谢谢!
2015年

完善。在我现在在Visual Studio 2015中编辑的旧Web Forms项目中工作。喜欢它。谢谢。
bkwdesign

5
经过测试并在VS 2015上工作。但是,我仍然不明白为什么“添加配置转换”变灰了
Illidan

20

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

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

  1. 点击“显示所有文件”图标:
    在此处输入图片说明

  2. 现在,您可以展开“ Web.config”:
    在此处输入图片说明

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

笔记:

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

  • 如果要创建其他配置转换文件,请记住,在Visual Studio中,配置转换与配置相关。要添加另一个转换,您需要首先添加一个新配置。要添加另一个配置,请执行以下操作:通过配置管理器(可以在其中选择Debug或Release的下拉菜单),首先添加一个新配置,例如myNewConfig。然后选择myNewConfig。现在,在解决方案资源管理器中选择Web.config,右键单击并在上下文菜单中选择“添加配置转换”,它将创建Web.myNewConfig.config。一旦存在,上下文菜单将再次变灰,因为VS仅允许每个配置进行一次转换。


这对我来说也是这种情况。我希望配置转换文件保持可见,因此我<DependentUpon>Web.config</DependentUpon>在项目文件中将其注释掉。转换仍按预期工作。
伊桑(Ethan)

如何添加新的配置转换?
Reshma

@Reshma-在Visual Studio中,配置转换与配置相关。通过配置管理器(可以在其中选择Debug或Release的下拉菜单),首先添加一个新配置,例如myNewConfig。然后选择myNewConfig。现在选择Web.config,右键单击并在上下文菜单中选择“添加配置转换”,它将创建Web.myNewConfig.config。
马特

我做了那个Matt并能够添加一个配置文件,但是我试图添加另一个配置文件,现在“ add Config Transform”再次变灰。我还为下一个配置文件创建了新的配置文件
-Reshma,

1
@Reshma-正确,因为每个配置只能有一个。要获得另一个配置,请添加一个额外的配置,例如myNewConfig2。然后选择myNewConfig2,然后重试。这次不应该是灰色-选择它。注意:该配置的配置文件存在后,它将立即变灰。
马特

1

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

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

我将以下XML添加到csproj中并重新加载了该项目。然后添加配置转换可用。一旦选择了我的附加变换

<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>

1

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

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

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

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

希望它能帮助某人。:)


1

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

步骤2:单击配置管理器 单击配置管理器

步骤3:从“活动解决方案配置”窗口中 选择“新建”。

步骤4:现在为您的新商品(如Production / Staging)命名,并从“ Release”选项中选择复制设置。如果默认情况下未选中该复选框,请确保选中了该复选框,然后单击“确定”。 现在为您的新商品命名有意义的名称,例如Production / Staging

步骤5:现在返回您的解决方案资源管理器,然后右键单击Web.Config文件。 现在启用添加配置转换

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.