.Net 4.0 C#项目中是否需要app.config?

时间:2010-09-30 17:33:27

标签: c# visual-studio-2010

令我烦恼的是,当我将目标从.NET Framework 3.5更改为.NET Framework 4.0时,Visual Studio 2010将App.config文件添加到我的所有.EXE项目中。所以我的自动构建破坏了,直到我检查了那些新文件。

有什么特别的原因我不能删除这些App.config文件吗?或者Visual Studio是否会继续将它们添加到我的项目中?

我不会咆哮一种将无用文件添加到我的项目中的工具。 。

澄清:

我了解app.config的用途。我不明白的是,当我将项目更改为目标.NET 4.0而不是.NET 3.5时,Visual Studio 2010会向现有项目添加app.config文件。我的应用程序不需要app.config中的任何东西来运行,所以我唯一合理的结论是Visual Studio出于某种原因需要app.config来编译,或者有人认为他们比我更了解我的应用程序必须有app.config,即使我不想要它。

哎呀......我咆哮了。

进一步澄清:

将项目从Visual Studio 2008转换为Visual Studio 2010不是问题。当我将目标从.NET Framework 3.5更改为.NET Framework 4.0时,app.config将添加到项目中。 app.config包含:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

当我将其更改回目标.NET Framework 3.5时,app.config文件被修改为:

<supportedRuntime version="v2.0.50727"/>

我想我知道他们正在尝试做什么,但是自动添加app.config文件是一个非常糟糕的主意。

3 个答案:

答案 0 :(得分:16)

如果您引用CLR-2.0混合模式程序集,那么我在.NET 4项目中唯一知道该app.config是必需的时间。在这种情况下,您需要将useLegacyV2RuntimeActivationPolicy =“true”添加到startup元素中,否则您将在运行时收到错误。

但是,VS转换工具没有检测到这一点,默认情况下会添加一个app.config文件,这实际上是不必要的。如果您能够在转换后运行,这对您来说可能不是问题。

否则,您可以自由删除它(当然,除非您将其用于其他目的)。

答案 1 :(得分:5)

不需要app.config文件。没有它们,应用程序就可以正常运行。

修改

Reed指出有一种情况,这不值得注意

  

有一种情况需要它 - 如果你的项目引用了CLR 2.0混合模式程序集,你必须有一个app.config文件来运行

答案 2 :(得分:2)

转换中的配置文件中可能需要添加一些设置,如果您创建新项目,则不会自动获得app.config

您必须检查其中包含的内容,以确定其中是否包含所需内容。