安装 4.x 时 Windows 提示安装 .NET 3.5

Posted

技术标签:

【中文标题】安装 4.x 时 Windows 提示安装 .NET 3.5【英文标题】:Windows prompting to install .NET 3.5 when 4.x is installed 【发布时间】:2017-02-11 22:06:14 【问题描述】:

我有一个用 C#/.NET 编写的小型命令行应用程序。我需要它在操作系统上安装 .NET 3.5 或更高版本时运行。

为此,我让 app.config 包含以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" />
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

项目框架设置为“.NET Framework 3.5”。

据我了解,这两个设置应该是向后兼容的,这样当有人没有安装 3.5,但安装了 4.x 时,它会继续工作。

我还有什么遗漏的吗?从我的研究来看,我认为我已经把所有的部分都整合在一起了。

编辑:根据下面的问题,这里也是引用和使用语句。没有第三方组件

以下是项目中的引用:

System.Core
System.Web.Extensions
System.Windows.Forms

以下是我的使用语句:

using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Security.Cryptography;
using System.Web.Script.Serialization;
using System.Reflection;
using System.Diagnostics;

【问题讨论】:

你们有第三方组件吗? 我没有,我会在原始问题中添加引用和使用语句 尝试添加sku, ***.com/questions/6739412/… 当使用 4.0 作为目标时,@LexLi 似乎适用于 4.0+。当系统上仅安装 3.5 时,应用程序崩溃 【参考方案1】:

这是 .NET Framework 的一个已知限制 - 从 4 开始,如果之前的(在您的情况下为 target 版本)不是,它不允许应用在其自己的运行时内执行已安装。

3.5 基于不同的 CLR (2.0),因此存在一些兼容性问题。您需要将项目重新定位到 4.0(或更高版本)以避免出现框架安装提示问题。

推荐阅读: CLR Inside Out - In-Process Side-by-Side

【讨论】:

以上是关于安装 4.x 时 Windows 提示安装 .NET 3.5的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 9.2.4-x64 在 windows 8 Pro 64bit 上的安装问题

网址重写未安装在 Windows 10 IIS 10 上

U盘安装WINDOWS10时提示无法在驱动器上安装WINDOWS解决办法

安装win7原版时提示“windows无法完成安装,若要在此计算机上安装,请重新启动安装”

安装电脑系统时提示Windows无法更新计算机的启动配置怎么解决

windows 7 安装时提示:安装程序无法创建新的系统分区