91

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

我不知所措。新项目是一个 Web 应用程序。配置管理器不会显示此项目的两个自定义配置,但会显示其他项目。该项目似乎在解决方案文件中有正确的条目。

想法?

4

6 回答 6

122

您必须首先在配置管理器中定义配置。为确保您启动了配置管理器,您可以通过以下方式访问它:构建->配置管理器

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

不要直接编辑您的解决方案文件。只会让人头疼。

于 2012-06-14T16:16:19.753 回答
50

当我们使用 PublishProfiles 时,对我来说,答案是右键单击相关pubxml文件(在项目文件夹Propertiessubfolder中找到PublishProfiles),然后选择Add Config Transform. 不需要经理;)。

于 2015-11-06T08:00:00.723 回答
22

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

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

  1. 点击“显示所有文件”图标:
    在此处输入图像描述

  2. 现在您可以展开“Web.config”:
    在此处输入图像描述

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

笔记:

  • 我不想添加额外的配置,只需使用DebugRelease。如果您创建一个,选择它,并且转换文件尚不存在,则上下文菜单项Add Config Transform处于活动状态且未显示为灰色。

  • 另一种方法是删除(或将文件移到项目目录之外),然后从头开始重新创建它们(通过Add config transform)。因为它们不再存在,所以菜单不应该是灰色的。删除文件后,可能需要关闭并重新打开解决方案。

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

于 2017-02-07T17:39:16.723 回答
4

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

  1. 解决方案级别的配置,也有项目级别的配置。web.MyConfigName.config 是根据项目级别的配置创建的。
  2. 似乎 Visual Studio 2017 配置管理器基于从(隐藏的)obj 文件夹中添加的配置。删除项目的 obj 文件夹并重新构建将使用您添加的配置更新项目。

要使“添加配置转换”选项可用,请执行以下步骤:

  1. 确保您已启用显示隐藏文件
  2. 打开解决方案的配置管理器
  3. 选择相关的解决方案配置,然后在项目旁边的下拉列表中选择<New..><Edit..>添加、删除或编辑您想要的项目配置。
  4. 删除项目中的 obj 文件夹。重建。确保将更改保存到项目和解决方案文件中。我还重新启动了视觉工作室,因为为什么不呢。验证您是否将所有项目配置视为 obj 文件夹中的文件夹。
  5. 右键单击 web.config 并添加您的配置转换。

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

于 2019-07-04T09:22:07.547 回答
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>
于 2019-01-09T15:51:08.993 回答
1

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

Step2:点击配置管理器 点击配置管理器

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

第 4 步:现在为您的新项目命名有意义的名称,例如 Production/Staging,然后从“Release”选项中选择复制设置。如果默认情况下未选中,请确保选中该复选框,然后单击“确定”。 现在给你的新项目起有意义的名字,比如生产/登台

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

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

于 2019-12-05T11:26:36.523 回答