Web.config转换选项灰掉了

61

在VS2010中,当我右键单击web.config文件时,“添加配置转换”选项变灰了。

有什么办法可以重新激活它吗?

10个回答

84

因为所有列出的配置项都已经有了转换文件,所以它被灰掉了。

我无法看到转换文件,因为vb.net在其无限的智慧中决定不原生显示相关的配置文件。显然,唯一的选择是选择“显示所有文件”才能看到它们。


3
我喜爱VB.NET的无尽智慧。 - BlackICE
1
谢谢!我在这个问题上挣扎了很久。顺便说一下,这是如何“显示所有文件”的方法:http://blog.brianhartsock.com/2009/09/14/visual-studio-tip-show-all-file/ 很明显,但我却没有注意到这么多年... - Michal B.
2
@TomStickel:实际上,C#会在web.config文件名旁边添加一个小加号。而VB则不会。 - NotMe
1
VB.NET在其无限的智慧中?几乎不可能... 我通常会用一些不适合在StackOverflow上使用的词来替换“智慧”。 - gillonba
1
迄今为止,这里的所有答案都对我没用,但是这个答案有效:https://dev59.com/TWcs5IYBdhLWcg3wcTkz#12846843 - dnord
显示剩余3条评论

13

一个人也可以完全避免配置管理器对话框,直接编辑项目文件,添加所需的额外配置文件,这在使用更高级的配置转换工具(如CodeAssassin.ConfigTransform或SlowCheetah)时特别有用。

<ItemGroup>
    <Content Include="web.config">
        <SubType>Designer</SubType>
    </Content>
    <Content Include="web.debug.local.config">
        <DependentUpon>web.config</DependentUpon>
    </Content>
    <Content Include="web.debug.cloudstaging.config">
        <DependentUpon>web.config</DependentUpon>
    </Content>
    <Content Include="web.release.cloudprod.config">
        <DependentUpon>web.config</DependentUpon>
    </Content>
</ItemGroup>

没有其他方法对我有用,所以这很有帮助。我偶尔不得不这样做。奇怪。谢谢。 - Don Rolling

8
如果您想真正看到“启用添加配置转换”,那么请使用configurationManager添加一个新的配置。或者删除任何配置文件web.release.config或web.Debug.config。这是Visual Studio的限制,每个环境只能有一个配置文件。

1
在使用配置管理器创建新配置后,我仍然需要重新启动VS才能添加新的转换。 - ferics2

5

在我的情况下有效的方法是右键点击发布配置文件,选择“添加配置转换”,然后复制我们为QA、UAT、Production等转换编写的现有代码。


2

我之前在使用配置管理器添加了额外的配置,但出现了问题。

我需要删除它们,并重新添加才能让 Visual Studio 启用“添加配置转换”功能。

我猜测这些 Web 项目的配置可能在某个时间点被删除或损坏了,所以需要重置。


2
我们的解决方案有140多个项目和超过13个不同的配置,除了默认的Debug和Release配置。我在该解决方案中的一个项目中遇到了同样的问题。添加配置变换项被灰显,但我只有Debug和Release web.config变换。我认为这是因为该项目可能是在创建所有自定义配置之后添加到解决方案中的。
我进入了配置管理器,并观察到该项目没有所有其他可用的配置。我必须手动添加每个缺失的配置,通过指定和名称。完成后,添加配置变换就可用了。

这是正确的答案。一个解决方案可能有许多可用的配置,但后来添加的项目可能有也可能没有。通过进入解决方案配置管理器,可以为每个项目添加新的配置。 - brazilianldsjaguar

2

重新启动Visual Studio对我有用。我不能说它适用于每个人,但值得一试。

我有5个配置,但只有3个变换文件。我没有处于调试模式,但该选项仍然无法使用。


重新启动 Visual Studio 就像重新启动计算机一样。 - gillonba

1
我遇到了这样的情况:我有一个名为“Dev”的现有配置。在Web.config下没有Web.Dev.congig文件,而添加菜单选项被禁用了。
我删除了该配置并重新添加。这样做后,它添加了一个新的Web.Dev.config文件,并启用了“添加配置转换”菜单选项。我怀疑csproj文件中存在一些混淆。
看起来,在VS2015中,某些混淆已经得到了澄清。

1
如果您通过配置管理器添加自定义配置,请确保在创建配置时选中“创建新项目配置”复选框(默认情况下未选中)。

1

我曾经遇到过同样的问题。我的解决方案是安装SlowCheetah来添加另一个配置转换。很奇怪,但它效果非常好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接