【问题标题】:dot net 4 vb.net program asks for dot net 3.5 to be installeddot net 4 vb.net 程序要求安装 dot net 3.5
【发布时间】:2017-01-04 12:26:31
【问题描述】:

我有一个 vb.net 程序,我已将目标框架设置为 dot net 4,但是当我在没有 dot net 3.5 的机器(安装了 dot net 4.5.2 的 windows 8.1 机器)上运行它时,它会询问当我的代码开始使用进程启动批处理文件时安装 dot net 3.5。

我尝试重新定位它以使用 dot net 4 full,但这没有帮助,我使用 dotPeek 检查了目标框架和 IL Disassembler,它们都只显示 dot net 4。

有什么想法吗?

【问题讨论】:

  • 您是否检查了高级编译选项? see here
  • 查看您的设置依赖项。您选择了 Framework 3.5。
  • 4.0 is not a supported version,你应该考虑移到更高版本的框架,比如4.6.1

标签: .net vb.net frameworks


【解决方案1】:

其中一个库可能依赖于 3.5。确保所有程序集都使用相同的 .Net 版本。

【讨论】:

    【解决方案2】:

    默认情况下,Windows 8 不包括 .NET 3.5(包括 .NET 2.0 和 3.0)。但如果用户从 Windows 7 升级到 Windows 8,则完全启用 .NET Framework 3.5。用户可以通过签入程序和功能来确保启用此功能。

    这些是用户可以执行的检查步骤列表:

    How to enable .NET Framework 3.5

    如果您的计算机没有安装 .NET 3.5,则没有 CLR 可以为您的应用程序启动。由于潜在的兼容性问题,.NET 4.0 不会自动用于您的应用程序。首先测试您的应用是否可以使用 .NET 4.0 运行,然后将此部分添加到您的 app.config 以告诉 CLR 更喜欢运行 .NET 4.0(如果存在)。

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

    请查看answer

    【讨论】:

    • 这没有说明为什么 4.x 应用程序请求 3.5?
    【解决方案3】:

    我找到了问题,名为 installutil.exe 的批处理文件,正是它导致了对 dot net framework 3.5 的请求。

    一旦我从 c:\windows\microsoft.net\framework\v4.xxxxxxx 文件夹复制 installutil.exe,程序就会自行运行。

    感谢所有及时的回复 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 2012-12-28
      • 2010-12-15
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多