SDKStyle的Framework项目使用旧版项目文件生成的Nuget包遇到的问题
随笔-2021-11-10
SDKStyle的Framework项目使用旧版项目文件生成的Nuget包遇到的问题
简介
C#从NetCore之后使用了新版的项目文件,SDK-Style项目,新版本的项目文件再VS中显示更加简洁明了,项目自定义配置更加方便,并且nuget依赖保存在项目文件中且还原路径在系统用户目录(不会出现以前的解决方案目录改变导致packages文件夹相对路径改变,导致部分nuget还原失败)
所以,C#的项目文件类型分为两种,个人推荐使用第一钟
SDK-Style风格项目文件(NetCore之后默认使用,Framework可升级为这个)- .NetFramework默认旧版本的项目文件
注:如果使用SDK-Style风格项目文件的项目使用非字符串的资源文件,如果该项目框架版本不支持
System.Resources.Extensions包,则无法使用dotnet cli进行编译,只能使用msbuild和visualstudio。
问题
最近遇到使用SDK-Style风格的.NetFramework4.0的Winform项目,该项目依赖了一个使用旧版本项目文件和Nuget.exe生成的nuget包,当项目所有的控件窗体数量超过两三千后,就会出现无法加载符号进行断点调试。
起初以为是代码问题,最后把那个项目的类一个一个删,最后删了一个控件后就可以调试了,以为是这个控件的坑,结果发现只是个普通的按钮,然后发现删除任意一个控件都可以调试,在增加任意一个控件或窗体就不可以了,才发现是控件实例数量问题,但是在其他控件数量更多的项目测试并不会。最后一个类一个类逐步排查才发现是和这个nuget包有冲突。
最后排查出是控件数量和那个nuget包依赖,只要两者同时满足,就会出现这个问题,但是我自己用Framework版项目文件生成的nuget包却无法重现该问题,最后因为时间关系只能排查到这了。
解决方案
最后把原来的.NetFramework项目升级成SDK-Style风格项目文件后,在生成nuget包就没出现这个问题了。
所以,还是推荐使用SDK-Style的的项目文件,能适配各种新特性新功能。
SDKStyle的Framework项目使用旧版项目文件生成的Nuget包遇到的问题的更多相关文章
- Python之路【第二十篇】:python项目之旧版抽屉新热榜
旧版抽屉新热榜 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Play!framework 项目部署到Tomcat
Play Framework有自带的服务器,也可部署到其他服务器上.这里讲解下如何将Play的项目部署到Tomcat. 1.准备war包 首先进入play目录: 比如我的: cd C:\play-1. ...
- Fiddler抓包HTTPS捕捉旧版App
“现在可以公开的情报:简易操作Fiddler抓包可能” 任何App的更新都限于苹果开发者规定,有时为了上架不得已放弃一些真正实用的功能,比如视频音频的直接下载,脚本的直接导入,手机上IPA的直接安装等 ...
- 使用了旧版nuget的.net项目在git中的问题
曾几何时,使用nuget包管理项目依赖还需要将nuget执行程序及其配置文件包含在项目中. 如上图所示,在解决方案文件夹中,有专门为nuget程序设置的 .nuget 子目录. 当将项目纳入git管理 ...
- 如何移植.NET Framework项目至.NET Core?
公司的项目一直采用.NET框架来开发Web项目.目前基础类库均为.NET Framework 4.6.2版本.Caching, Logging,DependencyInjection,Configur ...
- (转)Resources和AssetBundle(新旧版)学习
Resources: Resources的缺点:1.与显示Inspector上直接引用相比,Resources使用不方便. 2.不管你Resources上的资源是否调用了,当你发布的时候, ...
- Arcgis API For IOS扩展AGSDynamicLayer新旧版API对比
AGSDynamicLayer(ForSubclassEyesOnly) Category Reference Description This category organizes the meth ...
- Framework项目持续集成(jenkins)及集合SonarQube
目录 Framework项目持续集成及集合SonarQube - 前言 CI/CD是什么 -- jenkins 什么是sonarqube?什么是CodeReview? 什么是sonarqube? 什么 ...
- 结对编程项目——四则运算vs版
结对编程项目--四则运算vs版 1)小伙伴信息: 学号:130201238 赵莹 博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
随机推荐
- python继承细节
不要子类化内置类型 内置类型(由C语言编写)不会调用用户定义的类覆盖的特殊方法. 例如,子类化dict作为测验: class DoppeDict(dict): def __setitem__(self ...
- AT1983-[AGC001E]BBQ Hard【dp,组合数学】
正题 题目链接:https://www.luogu.com.cn/problem/AT1983 题目大意 给出\(n\)个数对\((a_i,b_i)\) 求 \[\sum_{i=1}^n\sum_{j ...
- GDOI2021划水记
Day0 上午有意志行,一大早就醒了,然后走了五个小时脚痛.中午洗澡,宿舍轮流看巨人最终话然后聊了一个小时? 下午老师带着我和全爷先开溜,宿舍好像很破旧还还没得充电,领了牌牌和斐爷去吃饭. 然后六点多 ...
- Spring Cloud Gateway 雪崩了,我 TM 人傻了
本系列是 我TM人傻了 系列第六期[捂脸],往期精彩回顾: 升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了 这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了 获取异 ...
- Batch Normalization和Layer Normalization
Batch Normalization:对一个mini batch的样本,经过一个nueron(或filter)后生成的feature map中的所有point进行归一化.(纵向归一化) Layer ...
- 计算机网络-4-2-ARP地址解析协议以及IP数据报不可变组成部分
地址解析协议ARP 在实际的应用中,我们会经常遇见这样的一个问题:我们已知一个机器(主机或者路由器的),我们怎么获取相应的硬件地址?,地址解析协议就是用来解决这个问题的. ARP协议的作用: 由上 ...
- xmake v2.5.8 发布,新增 Pascal/Swig 程序和 Lua53 运行时支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...
- JVM学习笔记——堆
堆 Heap 一个 JVM 只有一个堆,堆也是 Java 内存管理的核心区域.在 JVM 启动时堆被创建,同时大小在启动时已设定好,堆是 JVM 管理最大的一块内存空间,其大小可以调节. 堆的内存空间 ...
- 基于go语言学习工厂模式
工厂模式 简单工厂模式(Simple Factory) 定义 优点 缺点 适用范围 代码实现 工厂方法模式(Factory Method) 定义 优点 缺点 适用范围 代码实现 抽象工厂模式(Abst ...
- NOIP&CSP 考前 Dev-cpp 的选项问题和考试心态
(进入考场后您将获得一个崭新的 \(Dev-cpp\),没有中文,没有编译选项,没有缺省源:我还将获得一个崭新的脑子,没有心态,没有智商,没有调试能力--) 中文 \[Step1 \] \[Step2 ...