安装 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 上的安装问题
U盘安装WINDOWS10时提示无法在驱动器上安装WINDOWS解决办法
安装win7原版时提示“windows无法完成安装,若要在此计算机上安装,请重新启动安装”