【问题标题】:Run dot net 3.5 application on Windows 10在 Windows 10 上运行 dot net 3.5 应用程序
【发布时间】:2016-03-14 12:39:37
【问题描述】:

我创建了一个 WPF 应用程序,它应该在 Windows 7、8、8.1、10 上本机运行。

在 Visual Studio 中,我已将 .NET Framework 设置为 3.5,因为它与 Windows 7 捆绑在一起。但是,当我在 Win10 上运行它时,它会提示安装 .NET 3.5,因为 Win10 与 4.6 捆绑在一起并且没有 3.5默认安装。

如何让我的应用程序在所有 Windows 版本 >= 7 上运行而不从 Windows 获得任何提示并且不安装任何东西?

【问题讨论】:

  • 我希望所有 Windows 7 机器现在都安装了 .NET 4.0 或更高版本。
  • 您很可能需要将它包含在您的安装程序中。根据他们的定义,如果没有它的要求,你就无法运行你的应用程序......(还有@ChrisF,我希望在我的上一个项目中就是这种情况,我们的很多用户都在使用不可靠的 Windows 副本并且不想安装 Windows 更新以避免检测)..
  • @Sayse - 啊。我没有考虑过:(
  • @ChrisF 我也期望相同,但我需要确定.. :)
  • @Danton - 您可能需要考虑使用 3.5 编写启动器,尽管根据我在之前评论中的经验,我们最终只是告诉我们的客户找到一种升级方法,因为这将使他们受益更多我认为不仅仅是我们的软件。我认为显示这些弹出窗口作为最终用户是可以接受的,前提是它们显示了解决方案

标签: c# .net wpf .net-4.0 .net-3.5


【解决方案1】:

我不认为你可以。即使 Windows 10 中有 .net。Microsoft 中的更新系统是这样的,它不会覆盖您当前的小程序(例如 Chrome),而是向系统添加更多内容(检查您的控制面板/卸载程序以了解如何您拥有许多 Microsoft C++/.NET 实例)

【讨论】:

    【解决方案2】:

    您可以创建一个安装程序,将您的应用程序 + .NET 4.5 静默安装到客户的计算机上。这样您的应用就可以在每个操作系统上无缝运行。

    【讨论】:

    • 它要么增加安装程序的大小,要么需要互联网连接 + 安装时间过长,太安静不会让用户满意..
    • .NET 4.5 框架远没有 .NET 3.5 庞大。 IMO 将额外的 67MB 添加到您的安装程序不会造成太大伤害。让我纠正一下静默安装。我的意思是在安装程序中,您可以检测 .NET 4.5 安装并根据需要进行安装。将会有 .NET 4.5 安装 UI 可见。所以也不算太沉默。顺便说一句,在 4.5 机器上开发并在 3.5 机器上部署时,我的经验很糟糕。一些错误只出现在部署的机器上。
    【解决方案3】:

    它可以工作,找到解决方案:

    我们需要修改 app.config 文件并在其中添加以下行:

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

    它从上到下决定,根据上面的列表找到的 .net 的第一个版本,它适用于该列表。

    CATCH: 编译完成后,在release文件夹下生成了一个ProgramName.exe.config文件,我们需要将它和我们的ProgramName.exe一起复制到我们要运行的系统..

    【讨论】:

    • 只是好奇为什么当您的要求是运行在 .NET 3.5 及更高版本(即 Windows 7 及更高版本)上运行并且您正在构建时,您为什么要告诉运行时回退到 2.0 3.5?
    • @aardila 答案很清楚。它使用 .NET 2.0 作为运行时,因为 .NET 3.5 使用 .NET 2.0 作为其运行时。没有特定于 .NET 3.5 的运行时。
    • @EriawanKusumawardhono 感谢您对 3.5 运行时的澄清。也就是说,我并没有挑战答案的清晰度,并且由于它不包含您刚刚提供的信息,因此有待澄清的空间,因此我提出了问题
    • @ardila 更准确地说,.NET 3.5 使用 CLR 2.0 而不是 .NET 2.0。 Wikipedia有很好的对应关系。
    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2012-04-15
    • 1970-01-01
    • 2010-12-10
    • 2011-08-06
    相关资源
    最近更新 更多