【问题标题】:Make same app compatible for Net3.5 & 4.0使相同的应用程序兼容 Net3.5 和 4.0
【发布时间】:2013-02-22 20:47:59
【问题描述】:

我有一组应用程序作为使用 .NET3.5 用 C# 开发的单个项目。 该应用程序不适用于带有 NET4 的 PC,我添加并测试以查看所有功能是否在 NET4 中运行。将 Net 框架更改为 4.0 而不是 3.5。

同一个应用程序在 NET4 中编译和构建时没有出现任何错误。该应用程序在 Properties.Settings 中包含 UserSettings。我将版本从 2.0.0 更改为 4.0.0,现在应用程序开始执行。

我的问题:代码兼容 NET3.5 和 4.0。但目前唯一的问题是 appConfig 中的 Version 值对于 .NET3.5 和 .NET4.0 的版本会有所不同。无论如何,除了处理上述情况(即版本标签的值)之外,我还可以对 NET3.5 和 4 使用相同的代码吗? 我也可以添加

  <startup>
<!-- FOR .NET 3.0 & 3.5, 3.0.50727 CLR is only used -->

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0" />  <!-- For Net 2.0, 3.0, 3.5 -->

使应用程序在 NET 4.0 或 3.5 的 PC 上运行?

任何帮助,指导表示赞赏。

谢谢

【问题讨论】:

    标签: .net .net-4.0 properties settings


    【解决方案1】:

    您应该针对 v3.5 而不是 v4 构建。那么我期望你能够在没有 any app.config 文件的机器上运行它,只有 4.0 或只有 3.5 - 或者没有文件提及支持的运行时。预计大多数在 3.5 上运行的代码应该能够在 4.0 上运行而无需更改。

    (一个变化是围绕混合模式程序集中的本机代码,IIRC - 但除非您知道您包含本机代码,否则我怀疑您会被它咬住。)

    【讨论】:

    • 原来的版本只有3.5,在4.0环境下不执行。迁移时当我在 app.config 的 configSections 中将 Version 值从 2.0.0.0 更改为 4.0.0.0 时,只有它开始显示。否则,在 Properties.Setting 中更新和保存值时会遇到问题。
    • @Tvd:“不执行”非常含糊。什么地方出了错?您还尝试如何修复它?您在原始应用程序中有 supportedRuntime 元素吗?您是否尝试过删除添加,而不是仅仅更改它?
    • 是的,当我迁移到 4.0 时,supportedElement 添加到其中。最初那是配置中的顶级子项,我将 configSections 设置为顶部,使其执行应用程序。刚才,我尝试将版本替换回 2.0.0.0 并且它确实执行了。但是添加了supportedElement。仅供参考,此时我正在使用该应用程序的 NET 4.0 版本。我也有 3.5 的应用程序版本。
    • @Tvd:恐怕我没有听懂你的评论,但基本上你应该能够让 .NET 3.5 构建在 .NET 4 上运行......我会亲自删除 all 的配置,让 .NET 自行解决。
    • 谢谢乔恩。一旦我检查了 net4.0 中的功能是否正常工作,如果一切顺利,将按照您的建议进行。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2011-04-24
    相关资源
    最近更新 更多