.NET Framework targeting pack随手记

最近工作遇到一个问题 关于.NET Framework Targeting Pack4.7 binary 编译产出能否在.NET Framework 4.5上运行。于是开始补background

.NET Framework:

运行环境,仅用于运行程序。

在win8以及之后的版本,都不允许卸载.net,它自带安装的版本可以通过查看注册表的方式确定 Determine which .NET Framework versions are installed - .NET Framework | Microsoft LearnHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full folder 

如果实在想试试,可以去win7里把net framework卸载了,你会发现很多exe都不能doubleclick了。VS安装setup,sqlserver安装setup,全都run不起来,报错 如图 

 .NET Framework Developer Pack

developer pack includes a specific version of .NET Framework and its accompanying SDK along with its corresponding targeting pack.

翻译:一个开发包比如4.8,它包含了.Net FrameWork 4.8,targeting pack 4.8,以及附带的SDK。更多的是一个大礼包

.NET Framework Targeting Pack

  • visual studio使用的,用于编译等开发工作

targeting pack lets your app target a specific version of .NET Framework when developing in Visual Studio and some other development environments.

翻译过来就是  .NET Framework Targeting Pack比方说4.7.2可以让你在VS或者其他开发环境当中,在开发编译的时候指向你想要的 .NET Framework 4.7.2

当你打开VS想要使用C#编译一个ConsoleApp的时候,你必须先下载。 

那你编译的产出就会变成这样 

 

### 查询 VSCode 中使用的 .NET Framework 版本 在 Visual Studio Code (VSCode) 中,要确认正在使用的 .NET Framework 版本,可以通过以下方式实现: #### 方法一:通过 `csproj` 文件查看目标框架 `.NET Framework` 的版本通常会在项目的 `.csproj` 文件中定义。打开该文件并查找 `<TargetFramework>` 或 `<TargetFrameworks>` 节点即可找到目标框架版本。 例如,在一个典型的 C# 控制台应用程序的 `.csproj` 文件中可能有如下内容: ```xml <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net46</TargetFramework> </PropertyGroup> </Project> ``` 上述示例表明该项目的目标框架为 `.NET Framework 4.6`[^2]。 #### 方法二:通过命令行工具验证 如果已经创建了一个项目,则可以运行以下命令来获取更多关于目标框架的信息: ```bash dotnet --info ``` 此命令会显示当前环境中已安装的所有支持的框架列表以及 SDK 和运行时的相关信息。注意,对于传统的 `.NET Framework` 应用程序,`dotnet` 工具本身并不直接管理它们;它主要用于基于 `.NET Core`/`.NET 5+` 的跨平台开发场景。因此,当涉及 `.NET Framework` 时,还需要额外配置对应的 Targeting Packs[^3]。 #### 方法三:检查全局 JSON 配置 有时开发者可能会设置特定于解决方案或用户的 global.json 来锁定某个具体的 .NET SDK 版本。这同样会影响最终编译出来的程序依赖哪个基础类库集。 ```json { "sdk": { "version": "3.1.409" } } ``` 以上方法可以帮助确定实际使用的 .NET Framework 版本。需要注意的是,虽然现代 IDE 像 VSCode 提供了灵活的支持选项给不同类型的 .NET 开发工作流,但在处理较旧版 (.NET Framework) 的兼容性问题上仍需手动调整环境变量或者安装相应组件包以满足构建需求[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值