打破微软封印面向未来创建.NET Framework4.8工程

摘要:

  1. 工程从.NET Framework 4.8升级到.NET 8.0,即使采用官方方案也是很繁琐的一件事情,而且容易出问题。
  2. Windows 11内置了.NET Framework 4.8,所以当前的软件需要基于.NET Framework 4.8。但后续微软推出Windows 12,将内置更高版本的.NET版本,如何让软件跟随微软步伐快速平稳升级?
  3. 本文叫你如何打破微软封印,在VS2022中如何高屋建瓴面向未来优雅地创建.NET Framework 4.8工程。

关键工作流程:

  1. 创建新项目,【WPF 应用程序】

image.png

  1. 选择框架【.NET 8.0(长期支持)】

image.png

  1. 基于.NET 8.0的工程文件【HAPTICCAL.csproj】
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>net8.0-windows</TargetFramework><Nullable>enable</Nullable><UseWPF>true</UseWPF><RootNamespace>FirstSolver</RootNamespace><ApplicationIcon>$(AssemblyName).ico</ApplicationIcon><ProduceReferenceAssembly>False</ProduceReferenceAssembly><Authors>秦建辉</Authors><AssemblyVersion>4.3.0</AssemblyVersion><FileVersion>$(AssemblyVersion)</FileVersion><NeutralLanguage>zh-Hans</NeutralLanguage><StartupObject>FirstSolver.Program</StartupObject></PropertyGroup><ItemGroup><PackageReference Include="C2VColorEdit" Version="3.0.0" /><PackageReference Include="C2VLanguage" Version="3.0.0" /><PackageReference Include="HPSocket.Net" Version="5.9.3.1" /><PackageReference Include="Newtonsoft.Json" Version="13.0.3" /><PackageReference Include="NLogHelper" Version="3.0.0" /><PackageReference Include="NLogViewer" Version="3.0.0" /><PackageReference Include="TF_Communication_CS" Version="3.0.4" /></ItemGroup><ItemGroup><Resource Include="..\TF.png" Link="TF.png" /><Resource Include="$(AssemblyName).ico" /></ItemGroup><ItemGroup><None Update="Languages\en-US\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="Languages\zh-Hans\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="Languages\zh-Hant\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="$(AssemblyName)_Config.json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None></ItemGroup><Target Name="PostBuild" AfterTargets="PostBuildEvent"><Exec Command="PowerShell.exe -ExecutionPolicy RemoteSigned -Command &quot;&amp;'$(ProjectDir)PostBuild.ps1' '$(TargetDir)' '$(ProjectPath)' '$(AssemblyName)'&quot;" /></Target></Project>
  1. 如图所示更改工程文件【HAPTICCAL.csproj】,重点:TargetFramework改成TargetFrameworks

image.png

  1. 新的工程文件【HAPTICCAL.csproj】
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>WinExe</OutputType><TargetFrameworks>net480</TargetFrameworks><UseWPF>true</UseWPF><RootNamespace>FirstSolver</RootNamespace><ApplicationIcon>$(AssemblyName).ico</ApplicationIcon><ProduceReferenceAssembly>False</ProduceReferenceAssembly><Authors>秦建辉</Authors><AssemblyVersion>4.3.0</AssemblyVersion><FileVersion>$(AssemblyVersion)</FileVersion><NeutralLanguage>zh-Hans</NeutralLanguage><StartupObject>FirstSolver.Program</StartupObject></PropertyGroup><ItemGroup><PackageReference Include="C2VColorEdit" Version="3.0.0" /><PackageReference Include="C2VLanguage" Version="3.0.0" /><PackageReference Include="HPSocket.Net" Version="5.9.3.1" /><PackageReference Include="Newtonsoft.Json" Version="13.0.3" /><PackageReference Include="NLogHelper" Version="3.0.0" /><PackageReference Include="NLogViewer" Version="3.0.0" /><PackageReference Include="TF_Communication_CS" Version="3.0.4" /></ItemGroup><ItemGroup><Resource Include="..\TF.png" Link="TF.png" /><Resource Include="$(AssemblyName).ico" /></ItemGroup><ItemGroup><None Update="Languages\en-US\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="Languages\zh-Hans\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="Languages\zh-Hant\$(AssemblyName).json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None><None Update="$(AssemblyName)_Config.json"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None></ItemGroup><Target Name="PostBuild" AfterTargets="PostBuildEvent"><Exec Command="PowerShell.exe -ExecutionPolicy RemoteSigned -Command &quot;&amp;'$(ProjectDir)PostBuild.ps1' '$(TargetDir)' '$(ProjectPath)' '$(AssemblyName)'&quot;" /></Target></Project>
  1. 出现异常,然后【卸载项目】,再【重新加载项目】。
  2. 面向未来升级到.NET 8.0只需要修改“net480”,将“net480”改为“net8.0-windows”即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海康威视IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

漏洞介绍 海康威视IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版本存在操作系统命令注入漏洞&#xff0c;该漏洞源于文件/ph…

Linux网络编程(一):网络基础(下)

参考引用 UNIX 环境高级编程 (第3版)黑马程序员-Linux 网络编程 1. 协议的概念 1.1 什么是协议 从应用的角度出发&#xff0c;协议可理解为 “规则”&#xff0c;是数据传输和数据解释的规则 假设&#xff0c;A、B双方欲传输文件&#xff0c;规定&#xff1a; 第一次&#xff…

基于vue-cli快速发布vue npm 包

一、编写组件 1. 初始化项目并运行 vue create vue-digital-countnpm run serve2. 组件封装 新建package文件夹 ​ 因为我们可能会封装多个组件&#xff0c;所以在src下面新建一个package文件夹用来存放所有需要上传的组件。 ​ 当然&#xff0c;如果只有一个组件&#xff…

Guava事件总线的应用与最佳实践

第1章&#xff1a;引言 走过路过不要错过&#xff01;今天&#xff0c;小黑带大家深入了解Guava事件总线&#xff08;EventBus&#xff09;。咱们先聊聊&#xff0c;为什么这个东西这么酷&#xff1f;如果你是一名Java开发者&#xff0c;肯定知道&#xff0c;管理复杂的应用程…

JS常用方法

1、reduce()统计 &#xff08;1&#xff09;数组和 计算并返回给定数组 arr 中所有元素的总和 let arr [1,4,3,6,2,6] function sum(){const newArr arr.reduce((pre,item)>{return preitem})console.log(newArr);//22 } sum() 2、filter()过滤器 &#xff08;1&#…

HarmonyOS:Neural Network Runtime 对接 AI 推理框架开发指导

场景介绍 Neural Network Runtime 作为 AI 推理引擎和加速芯片的桥梁&#xff0c;为 AI 推理引擎提供精简的 Native 接口&#xff0c;满足推理引擎通过加速芯片执行端到端推理的需求。 本文以图 1 展示的 Add 单算子模型为例&#xff0c;介绍 Neural Network Runtime 的开发流…

精通服务器远程管理:全面指南

引言 在当今数字化世界中&#xff0c;IT专业人员和管理员能够远程管理服务器的能力是无价之宝。远程服务器管理不仅提高了效率&#xff0c;而且在无法物理访问服务器的情况下确保了持续的运营。本指南将深入探讨远程管理的不同类型、远程桌面的使用方法&#xff0c;以及如何安全…

一、W5100S/W5500+RP2040之MicroPython开发<静态网络示例>

文章目录 1. 前言2. MicroPython介绍2.1 简介2.2 优点2.3 应用 3. WIZnet以太网芯片4. 静态IP网络设置示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 烧录验证步骤1&#xff1a;将固件部署到设备步骤2&#xff1a;运行network_install.py程序步骤3&a…

【大数据存储与处理】实验一 HBase 的基本操作

一、实验目的&#xff1a; 1. 掌握 Hbase 创建数据库表及删除数据库表 2. 掌握 Hbase 对数据库表数据的增、删、改、查。 二、实验内容&#xff1a; 1、题目 0&#xff1a;进入 hbase shell 2、题目 1&#xff1a;Hbase 创建数据库表 创建数据库表的命令&#xff1a;create 表…

重塑数字生产力体系,生成式AI将开启云计算未来新十年?

科技云报道原创。 今天我们正身处一个历史的洪流&#xff0c;一个巨变的十字路口。生成式AI让人工智能技术完全破圈&#xff0c;带来了机器学习被大规模采用的历史转折点。 它掀起的新一轮科技革命&#xff0c;远超出我们今天的想象&#xff0c;这意味着一个巨大的历史机遇正…

【扩散模型】8、DALL-E2 | 借助 CLIP 的图文对齐能力来实现文本到图像的生成

文章目录 一、背景二、方法2.1 Decoder2.2 Prior 三、图像控制3.1 Variations3.2 Interpolations3.3 Text Diffs 四、探索 CLIP 的潜在空间五、文本到图像的生成5.1 先验的重要性5.2 人类评价5.3 多样性和保真性的平衡5.3 在 COCO 上对比 论文&#xff1a;DALLE.2 代码&#x…

JVM-12-即时编译器

Java程序最初都是通过解释器&#xff08;Interpreter&#xff09;进行解释执行的&#xff0c;当虚拟机发现某个方法或代码块的运行特别频繁&#xff0c;就会把这些代码认定为“热点代码”&#xff08;Hot Spot Code&#xff09;&#xff0c;为了提高热点代码的执行效率&#xf…

案例 | 数据中台如何支撑6000+门店降本提效?

对于企业来说&#xff0c;上中台不是目的&#xff0c;借助数据中台让企业建立数据驱动意识&#xff0c;并结合数据中台持续做好各项业务运营&#xff0c;才是根本。 那么对于零售行业来说&#xff0c;该如何利用数据中台为业务赋能&#xff1f;惟客数据以某头部连锁零售企业为…

leetcode 974. 和可被 K 整除的子数组(优质解法)

代码&#xff1a; class Solution {public int subarraysDivByK(int[] nums, int k) {HashMap<Integer,Integer> hashMapnew HashMap();hashMap.put(0,1);int count0; //记录子数组的个数int last0; //前一个下标的前缀和int now0; //当前下标的前缀和for(int i0;…

打开任务管理器的13种方法,总有一款适合你

任务管理器是一个很好的工具,可以帮助你管理应用程序、进程和服务在Windows PC上的运行方式。在使用任务管理器之前,你应该首先知道如何打开它。在本指南中,我们将向你展示运行它的不同方式,无论你使用的是Windows 11还是Windows 10。该列表包括启动任务管理器的十三种方法…

使用Python爬取GooglePlay并从复杂的自定义数据结构中实现解析

文章目录 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》&#xff0c;对分布…

计算机组成原理综合3

41、计算机操作的最小时间单位是__________。A A. 时钟周期 B. 指令周期 C. CPU周期 D. 外围设备 42、微程序控制器中&#xff0c;机器指令与微指令的关系是__________。B A. 每一条机器指令由一条微指令来执行 B. 每一条机器指令由一段用微指令编成…

在做题中学习(35):判断字符是否唯一

面试题 01.01. 判定字符是否唯一 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;1.用哈希表&#xff08;创建另一个数组存储&#xff09;然后和原数组一一比对。 时间复杂度O&#xff08;N&#xff09; 空间复杂度 O&#xff08;N&#xff09; 2.位图&#xff08…

使用物理机的burpsuite抓取虚拟机的请求包(虚拟机代理配置)

关于burpsuite抓取本地浏览器的请求包大家应该都会配置吧 我也是第一次配抓取虚拟机的包&#xff0c;最开始遇到了些问题&#xff0c;这里简单给大家分享一下 下面以Windows系统下的Firefox浏览器为例&#xff1a; 首先我还是先添加了一个小狐狸&#xff08;foxyproxy&#…

ubuntu保存分辨率失效解决办法

在VM虚拟机中&#xff0c;遇到修改ubuntu分辨率后&#xff0c;重启后又重置的解决办法。 目前我的ubuntu版本是&#xff1a;ubuntu 18.04.6 版本。 1.首先&#xff0c;在你喜欢的目录建立一个.sh 脚本文件。 终端执行命令&#xff1a;sudo vim xrandr.sh 2.按 i 进入编辑状…