.Net 4.0 C# 项目需要 app.config 吗?

问题描述 投票:0回答:4

令我非常烦恼的是,当我将目标从 .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 文件是一个非常糟糕的主意。

c# visual-studio-2010
4个回答
20
投票

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

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

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


6
投票

app.config 文件不是必需的。没有它们,应用程序也能正常运行。

编辑

Reed指出有一种情况并非如此,值得注意

有一种情况是必需的 - 如果您的项目引用 CLR 2.0 混合模式程序集,则必须有一个 app.config 文件才能运行


2
投票

在转换过程中,可能需要在配置文件中添加一些设置,如果您创建一个新项目,您不会自动获得

app.config

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


-1
投票

只是问一个后续问题:我们在 .NET Standard 2.0 和 .NET Framework 4.8 中获得了 .NET 项目。我们正在将所有项目迁移到 .NET 6/7。 我们可以安全地删除这些app.configs吗?

© www.soinside.com 2019 - 2024. All rights reserved.