gpt4 book ai didi

.net - 如何强制应用程序使用 .NET 3.5 或更高版本?

转载 作者:行者123 更新时间:2023-12-03 22:30:50 24 4
gpt4 key购买 nike

我们的应用程序是使用 VS 2008 构建的,使用 Linq 并将目标框架设置为 .NET Framework3.5。

当机器上只安装了 .NET 3.5 或 4 时,它工作正常。

但是,在安装了 .NET 2(或 3.0)和 .NET 4 的机器上,应用程序加载了 .NET 2,并在访问 Linq 时崩溃,因为它会查找 .NET 3.5 库。

在 app.config 中使用标记似乎没有帮助,因为它指定了 CLR 版本,在 .NET 3.5 的情况下为 2。

请注意,我们的安装会验证是否安装了 .NET 3.5 或更高版本。

有没有办法告诉应用程序加载:

  • 最高 CLR 它找到,或
  • CLR 4 如果已安装,和 CLR 2 如果未安装 CLR 4,或
  • CLR 2 如果安装了 .NET 3.5 并且 CLR 4 如果未安装 .NET 3.5

  • (请注意,类似的问题在 the Community Content section of the Element documentation 中没有得到解答)

    最佳答案

    形成问题使我得到了答案。如 the Element documentation 中所述,

    When multiple versions of the runtime are supported, the first element should specify the most preferred version of the runtime, and the last element should specify the least preferred version.



    所以实现第二个选项的方法(“CLR 4 if it is installed, and CLR 2 is CLR 4 is not installed”)是颠倒app.config中元素的顺序:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
    </startup>
    </configuration>

    这样,如果安装了 .NET 4,就会加载它,如果没有安装,则会加载较早的版本。

    关于.net - 如何强制应用程序使用 .NET 3.5 或更高版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953063/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com