C#VS.NET 2008更改每个配置的设置

C#VS.NET 2008更改每个配置的设置,c#,.net,visual-studio-2008,appsettings,C#,.net,Visual Studio 2008,Appsettings,是否有一种方法可以使每个构建配置具有不同的应用程序设置 我希望能够批量构建一些具有不同设置的配置,而不必更改设置和构建,请重复 提前谢谢 您可以将预构建或后构建任务添加到项目中,您可以从此处访问ConfigurationName。像“复制Web.config.debug Web.config”这样的操作相当容易。除此之外,微软承诺将在VS2010中添加此功能。您在“应用程序设置”下的意思是什么?每个配置(如调试或发布)的项目属性?或者为它们中的每一个定义app.conf文件 如果是第一个,您可以

是否有一种方法可以使每个构建配置具有不同的应用程序设置

我希望能够批量构建一些具有不同设置的配置,而不必更改设置和构建,请重复


提前谢谢

您可以将预构建或后构建任务添加到项目中,您可以从此处访问ConfigurationName。像“复制Web.config.debug Web.config”这样的操作相当容易。

除此之外,微软承诺将在VS2010中添加此功能。

您在“应用程序设置”下的意思是什么?每个配置(如调试或发布)的项目属性?或者为它们中的每一个定义app.conf文件

如果是第一个,您可以使用适当的设置创建许多配置,并使用批构建来依次构建它们。

或者正如谷歌忍者所说,使用预构建任务: del Web.config app.config 复制Web.config.Debug Web.config
(在它之前创建许多配置文件)

我对appsettings体系结构不太了解(我从未真正使用过它),但您可以使用一点MSBuild魔法为常量定义不同的值

创建两个.cs文件,Constants1.cs和Constants2.cs(或以您的配置命名)

在每个文件中,定义一个名为Constants(或其他)的类,但要像每个文件是唯一的定义一样(即使用相同的类名)。通常,这应该只定义
公共静态只读
字段——不要使用
const
,因为这可能会使您在部分构建中遇到麻烦

现在卸载项目文件并编辑它。查找如下所示的条目:

<Compile Include="Constants1.cs" /> <Compile Include="Constants2.cs" /> 然后像这样改变它们:

<Compile Include="Constants1.cs" Condition="'$(Configuration)'=='Debug'" /> <Compile Include="Constants2.cs" Condition="'$(Configuration)'=='Release'" /> 最后保存并重新加载项目。现在,根据您的生成配置,一次只能生成一个文件。

请参见以下问题: