令我烦恼的是,当我将目标从.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文件是一个非常糟糕的主意。
答案 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
。
您必须检查其中包含的内容,以确定其中是否包含所需内容。