2010-09-30 79 views
18

当我将目标从.NET Framework 3.5更改为.NET Framework 4.0时,Visual Studio 2010对我的所有.EXE项目添加了App.config文件。所以我的自动化版本打破了,直到我检查了这些新文件。.net 4.0 C#项目中是否需要app.config?

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

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

澄清:

我明白了什么app.config是。我不明白的是,为什么Visual Studio 2010会在将项目更改为目标.NET 4.0而不是.NET 3.5时将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文件是一个非常糟糕的主意。

回答

16

在.NET 4项目中,我唯一一次知道该app.config是需要是因为您引用了CLR-2.0混合模式程序集。在这种情况下,您需要将useLegacyV2RuntimeActivationPolicy =“true”添加到启动元素中,否则您将在运行时遇到错误。

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

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

+2

谢谢你:“...并且默认添加一个app.config文件,这真的不是必需的。”哎呀。 – 2010-09-30 17:51:54

5

app.config文件不是必需的。没有它们,应用程序将运行得很好。

编辑

Reed指出,有一个情况下,这是不正确的,值得一提的

则有时需要一种情况 - 如果你的项目引用一个CLR 2.0混色您必须有一个app.config文件才能运行

+0

任何想法为什么VS 2010如此有助于增加一个转换后的项目? – 2010-09-30 17:45:19

+1

有一种情况需要 - 如果您的项目引用CLR 2.0混合模式程序集,则必须运行app.config文件。 – 2010-09-30 17:47:57

+0

@Reed,有趣。不知道。将更新我的答案。 – JaredPar 2010-09-30 18:13:32

2

可能有一些设置需要添加到配置文件中rsion,如果你创建一个新项目,你不会自动获得app.config

你将不得不检查它包含什么,以确定是否有需要的东西。

+0

问题是我的项目中没有app.config,它运行得很好。由于未知的原因,VS 2010在我转换项目时添加了一个app.config。所以没有需要改变的设置。 – 2010-09-30 17:43:02

+0

不幸的是,无论是否有必要,转换工具都会添加此项。 – 2010-09-30 17:50:24

相关问题