目标 .NET 4.0 但需要 .NET 4.5

Posted

技术标签:

【中文标题】目标 .NET 4.0 但需要 .NET 4.5【英文标题】:Target .NET 4.0 but .NET 4.5 is required 【发布时间】:2012-11-03 23:21:22 【问题描述】:

我们最近迁移到 VS 2012,但我们需要继续使用 .NET 4.0。我们的大部分客户群仍在使用 XP,Windows XP 不支持 .NET 4.5。

现在,解决方案中的所有项目都面向 .NET 4.0 或更低版本。当我们运行应用程序时,它告诉我们安装 .NET 4.5 Framework,而只使用 .NET 4.0?

在生成的配置文件中我看到:

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

如果我在配置文件中手动将Version=v4.5 更改为Version=v4.0,一切正常,我们可以运行应用程序,但是必须这样做似乎很奇怪?有人可以向我解释在我们为 4.0 开发时导致解决方案要求 4.5 的原因吗?

【问题讨论】:

这可能对link有帮助 它有帮助,但让我有点害怕..... 安装程序项目中是否有 4.5 作为先决条件? 不,配置文件是在 Visual Studio 的编译时创建的。我还没有使用安装程序。 【参考方案1】:

当您使用 Visual Studio 2012 创建 .NET Framework 4.5 项目时,此 XML 内容会自动在 app.config 文件中创建。当您将项目重新定位到 .NET Framework 4 时,这些条目也会在 app.config 文件中恢复.看起来您的 app.config 条目由于某种原因未还原。 可以手动编辑文件(就像您所做的那样)。您的项目将不再需要 .NET Framework 4.5。

【讨论】:

以上是关于目标 .NET 4.0 但需要 .NET 4.5的主要内容,如果未能解决你的问题,请参考以下文章

XmlSerializer 空引用异常出现在 .NET 4.0 但不在 .NET 4.5

WiX 在具有 .NET 3.5 的机器上安装 .NET 4.5,但不在具有 .NET 4.0 的机器上

.net 4.0 和 .net 4.5 中的 HttpClient 有啥区别

安装 .NET 4.5 真的会取代 .NET 4.0 程序集吗?

VS2022 安装.NET 3.5/.NET 4/.NET 4.5/.NET 4.5.1目标包的方法

安装了 .NET 4.5 的构建服务器能否成功地将针对 4.0 的项目部署到仅安装了 .NET 4.0 的服务器?