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)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...
随机推荐
- appium日志
2020-10-02 00:44:10:672 [Appium] Welcome to Appium v1.16.0 2020-10-02 00:44:10:673 [Appium] Non-defa ...
- python读取文件编码转换问题
encode(编码) decode(解码) encoding(编码格式) #-*- coding:utf-8 -*- import chardet #用于查看编码 with open(&quo ...
- ASP.NET Core 学习笔记 第二篇 依赖注入
前言 ASP.NET Core 应用在启动过程中会依赖各种组件提供服务,而这些组件会以接口的形式标准化,这些组件这就是我们所说的服务,ASP.NET Core框架建立在一个底层的依赖注入框架之上,它使 ...
- RabbitMQ 3.9.7 镜像模式集群与Springboot 2.5.5 整合
1. 概述 老话说的好:做人要懂得变通,善于思考,有时稍微转个弯,也许问题就解决了. 言归正传,之前我们聊了 RabbitMQ 3.9.7 镜像模式集群的搭建,今天我们来聊聊 RabbitMQ 3.9 ...
- C#实例:datagridview单元格合并
这是替C#微信交流群群友做的一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行的ip,并执行相应的操作,其实我觉得这样的话button没必要非放置到datagr ...
- MySQL8.0.20下载与安装详细图文教程,mysql安装教程
MySQL下载与安装(8.0.20版)教程 mysql安装包+mysql学习视频+mysql面试指南视频教程 下载地址: 链接:https://pan.baidu.com/s/1FmLFhGlajBQ ...
- 图数据库Neo4j的基本使用及与SpringBoot集成
Neo4j 官网地址:https://neo4j.com/ 下载地址:https://neo4j.com/download-center/#community 官方入门文档:https://neo4j ...
- C++核心编程 2 引用
引用的基本使用 作用:给变量起别名 ,语法:数据类型 & 别名 = 原名 注意:引用必须初始化,且初始化之后,就不可更改. 引用做函数参数 作用:函数传参时,可以利用引用的技术让形参修饰实参 ...
- 题解 [HNOI2007]分裂游戏
题目传送门 题目大意 有趣的取石子游戏即将开始. 有 \(n\) 堆石头,编号为 \(0,1,2,...,n-1\).两个人轮流挑石头. 在每个回合中,每个人选择三堆编号为 \(i,j,k\) 的石头 ...
- java程序远程连接Linux服务器
JSCH或 Ganymed Ganymed: Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包. 可以利用它直接在Java程序中连接SSH服务器.官网地址为 htt ...