【问题标题】:.net 3.5 application on .net 4.0 runtime.net 4.0 运行时上的 .net 3.5 应用程序
【发布时间】:2011-05-20 13:04:24
【问题描述】:

如果我有一个针对 .net 3.5 构建的应用程序,如果所有用户安装的都是 .net 4.0,它会运行吗?指向官方 msdn 文档的链接说明了这一点,这将使我的后顾之忧。

【问题讨论】:

  • 在这样的事情上,请记住,即使是官方 MSDN 文档的链接也不能替代实际测试。理论兼容性不一定等同于实际结果。
  • 谢谢大家。给大家加一个。很好的答案。我喜欢堆栈溢出。

标签: .net


【解决方案1】:

是的,可以。您可以在 app.config 文件中说您支持 .NET 4:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" /> 
  </startup>
</configuration>

请注意,框架中的更改可能会破坏您的应用。有关详细信息,请参阅 MSDN 的 .NET 4 migration issues 列表,其中包含建议的更改。

如果你仍然想支持只安装了 .NET 3.5 的用户,你还需要添加一个&lt;supportedRuntime version="v2.0.50727" /&gt; 元素:

<configuration>
  <startup>
    <supportedRuntime version="v4.0" /> 
    <supportedRuntime version="v2.0.50727" /> 
  </startup>
</configuration>

请注意,如果已安装上述配置,则首选 .NET 4.0。更改上述顺序会使应用程序更喜欢 .NET 3.5(如果已安装)。可以在 MSDN 的操作指南configuring your app to support .NET 4.0 or 4.5 中找到完整的可能配置和效果表。

【讨论】:

  • 谢谢哥们。这是我需要做的。但是每个人都给出了很好的答案。我猜你排在第二位:) +1。非常感谢。
  • 如果只安装3.5呢?我相信您还应该添加&lt;supportedRuntime version="v2.0.50727"/&gt;(如果您希望在安装两者时优先使用&lt;supportedRuntime version="v4.0" /&gt;)。例如见stackoverflow.com/a/11211795/67824
  • 是的,根据 @OhadSchneider 的评论,如果您希望应用程序在仅安装 3.5 的计算机上运行,​​则必须添加 &lt;supportedRuntime version="v2.0.50727" /&gt; 元素。请参阅the table in this article,了解如何将应用程序配置为支持 .NET 4.0 或 4.5,以全面了解可能的设置和效果。
  • @HåvardS 可能最好,如果你编辑你的答案,我怀疑很多人希望他们的 3.5 编译程序 not 在只安装 3.5 的系统中运行时工作。 .
  • 顺便说一句,您可以将清单添加到现有程序中(如果它们尚未将其包含在资源中)。例如,有 winzpaq.exe,它默认尝试在 .NET 3.5 上运行。添加带有上述内容的 winzpaq.exe.config 允许在 4.0 及更高版本上运行它:)
【解决方案2】:

MSDN

这很重要:“.NET Framework 4 与使用早期 .NET Framework 版本构建的应用程序高度兼容,但为了提高安全性、标准合规性、正确性、可靠性和性能而进行了一些更改。”

【讨论】:

  • 来自您的链接正是我所需要的“.NET Framework 4 不会自动使用其公共语言运行时版本来运行使用早期版本的 .NET Framework 构建的应用程序。要运行旧版本使用 .NET Framework 4 的应用程序,您必须使用 Visual Studio 中项目属性中指定的目标 .NET Framework 版本编译应用程序,或者您可以使用应用程序配置文件中的 元素指定支持的运行时。”但只能有一个例外的答案。仍然 +1。
【解决方案3】:

答案很可能,这里有 MSDN 工具来确定您的应用程序是否会出现问题。

http://msdn.microsoft.com/en-us/library/ff602939.aspx

【讨论】:

  • 正是我想要的。具体来说,“默认情况下,应用程序在为其构建的 .NET Framework 版本上运行。如果该版本不存在并且应用程序配置文件未定义支持的版本,则可能会发生 .NET Framework 初始化错误。在此在这种情况下,运行应用程序的尝试将失败。”每个人都提供了帮助,但我只能将一个标记为已接受。
猜你喜欢
  • 2011-08-10
  • 2010-12-10
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
相关资源
最近更新 更多