【问题标题】:ASP.Net Web Application Add Config Transform Grayed OutASP.Net Web 应用程序添加配置转换灰显
【发布时间】:2012-06-17 17:17:55
【问题描述】:

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

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

想法?

【问题讨论】:

    标签: asp.net web-config transform


    【解决方案1】:

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

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

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

    【讨论】:

    • 呃。我之前曾尝试过,但未能取消选中“创建”框,因此它作为“重复”失败。一旦我取消选中“创建”框,它就起作用了。
    • @maplemale 此处相同,选项仍为灰色
    • 对不起,我不记得我是如何工作的。我可能直接破解了 sln 文件,与杰里米的回答相反,它有时只是唯一可行的选择。不过自从升级到 VS2015 后,我就没有遇到过这个问题。
    • SolutionProject 配置不同!您需要在给定项目中创建配置,然后才能使用该转换。选中“创建新项目配置”以一次在所有项目中创建配置,或者像 @paulv7260 那样单独创建。
    • 如果它仍然灰显,请确保您的 Web 项目具有与解决方案配置名称匹配的构建配置,并确保它已被选中。
    【解决方案2】:

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

    【讨论】:

    • 这个解决方案对我来说效果更好,因为我只想要添加这个转换,没有别的。新的活动解决方案配置对解决方案中的所有项目都有影响,这与我的情况无关。谢谢!
    • 完美。在我现在在 Visual Studio 2015 中编辑的旧 Web 窗体项目中工作。喜欢它。谢谢。
    • 在 VS 2015 上测试和工作。但是,我仍然不明白为什么“添加配置转换”是灰色的
    【解决方案3】:

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

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

    1. 点击“显示所有文件”图标:

    2. 现在您可以展开“Web.config”:

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

    注意事项:

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

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

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

    【讨论】:

    • 这也是我的情况。我希望配置转换文件保持可见,所以我在项目文件中注释掉了<DependentUpon>Web.config</DependentUpon>。转换仍按预期工作。
    • 如何添加新的配置转换?
    • @Reshma - 在 Visual Studio 中,配置转换与配置相关联。通过配置管理器(您可以选择调试或发布的下拉菜单),首先添加新配置,例如我的新配置。然后选择 myNewConfig。现在选择 Web.config,右键单击并在上下文菜单中选择“添加配置转换”-它将创建 Web.myNewConfig.config。
    • @Reshma - 没错,因为每个配置只能有一个。要获得另一个,请添加一个额外的配置,例如 myNewConfig2。然后选择 myNewConfig2 并重试。这次它不应该是灰色的 - 选择它。 注意:只要该配置的配置文件存在,它就会变灰。
    • @马特。谢谢指导。我实际上添加了新配置并做到了,但仍然无法启用“添加配置转换”按钮,但同时我发现在新配置窗口下未选中创建新项目配置按钮,因此它不起作用,我检查了它并添加了有效 。再次感谢
    【解决方案4】:

    为了让它工作,我必须在我的 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>
    

    【讨论】:

      【解决方案5】:

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

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

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

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

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

      【讨论】:

        【解决方案6】:

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

        第二步:点击配置管理器 Click on configuration manager

        步骤 3:从活动解决方案配置窗口中选择新建 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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-13
          • 2020-09-20
          • 2010-10-18
          • 2011-10-16
          • 2010-12-12
          相关资源
          最近更新 更多