nuget

dotnet 为什么每个项目都会输出一个 NuGet 包而不是一个包带所有项目

雨燕双飞 提交于 2020-07-27 02:59:52
在使用 dotnet 打 NuGet 包的时候会发现是每个项目都生成独立的一个 NuGet 包,通过 NuGet 引用依赖指向依赖的项目。那为什么不是我最终只打出一个 NuGet 包,这个 NuGet 包,包含了所有的项目的输出文件?每个项目独立输出是为了解决什么问题?下面让我为你解答 咱不和官方文档等说原因,咱从问题出发 假设咱有两个库项目分别是 A 和 B 两个项目,而 A 项目依赖 B 项目 假设咱决定打包的时候将 A 和 B 两个项目的输出文件 A.dll 和 B.dll 打到一个 NuGet 包里面。很好,此时就只有一个NuGet包,其他开发者安装这个 NuGet 包就拿到了 A.dll 和 B.dll 了,完美 后续小伙伴发现 B 项目需要维护,于是更新了 B 项目的代码。而此时就需要更新一个 NuGet 包,这个 NuGet 包需要包含 A 和 B 的两个项目,因为咱一开始就将 A.dll 和 B.dll 放在相同的一个 NuGet 包里面 此时其他开发者就纳闷了,我就想要更新 B.dll 为什么你也将 A.dll 也给我更新了 这就引入了一个问题,无法做到单独更新,必须捆绑 A 和 B 在一起。这对于补丁发布特别不利 在终于说服了其他开发者 A.dll 其实没改啥东西,就给你挖了几个坑,加班几天你就能修好了。其他开发者终于肯升级整个 NuGet 包了

C# WPF

会有一股神秘感。 提交于 2020-07-26 15:43:39
前言 本文主要讲解采用WPF MVVM模式设计OPC Client的过程,算作对于WPF MVVM架构的学习记录吧!不足之处请不吝赐教,感谢! 涉及知识点 C#基础 Xaml基础 命令、通知和数据绑定 Prism+Blend MahApps.Metro(第三方框架) OPC 项目实现功能 用户登陆(模拟登陆过程,未连接数据库) OPC同步读写、异步读写操作等 开发环境 Window 10 Visual Studio 2019 .Net Framework 4.8 成品效果图 项目详解 MVVM框架搭建 为了节省开发时间,在事件绑定上使用了Prism框架,OPC通信方面使用了OPCDAAuto.dll类库,二者均可以通过Nuget方式安装到项目中。 定义了一个DelegateCommand类用来处理属性和命令; 定义了一个NotificationObject类用来通知属性和命令的改变; 注意:在使用事件绑定时,需要添加引用 xmlns:i="http://schemas.microsoft.com/xaml/behaviors",然后根据控件对应事件的名称设置绑定命令即可。 比如我们想给ComboBox的SelectionChanged事件设置一个事件绑定,可这么写 xaml代码: < ComboBox x:Name ="CombServerList" Width ="120"

Nuget配置VS2017+OpenGL

和自甴很熟 提交于 2020-07-26 10:59:14
1.先在VS2017新建新空项目 2.添加 NuGet 包管理器 3。如果已经有程序包源,可以新建一个包源,没有的话使用Nuget.org,下载速度较慢。 3.添加 nupengl.core 包 里面有自带的GL和GLFW 4.遇到一些在Nuget包管理下载不了的,可以离线下载,比如Glad和STDB_IMAGE,j将下载好的文件存放在nupengl.core.0.1.0.1\build\native\include下即可: 测试结果: 来源: oschina 链接: https://my.oschina.net/1024and1314/blog/4278449

C#的dapper使用

感情迁移 提交于 2020-07-26 04:32:24
Dapper是一款轻量级ORM工具( Github )。如果你在小的项目中,使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀。你又觉得ORM省时省力,这时Dapper 将是你不二的选择。 为什么选择Dapper 轻量。只有一个文件( SqlMapper.cs ),编译完成之后只有120k(好象是变胖了) 速度快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。 支持多种数据库。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server 可以映射一对一,一对多,多对多等多种关系。 性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。 支持FrameWork2.0,3.0,3.5,4.0,4.5 Dapper的安装 方法一:使用NuGet安装 打开visual studio的项目,依次点击 工具 , NuGet包管理器 , 管理解决方案的NuGet程序包 ; 再点击 浏览 , 搜索dapper , 点击搜索结果中的Dapper , 勾选项目 , 选择安装 ; 在 解决方案管理器中点击项目 , 查看引用 ,如果有

nuget 包是如何还原包的

梦想与她 提交于 2020-07-25 08:16:02
nuget 是如何还原包的 Intro 一直以来从来都只是简单的用 nuget 包,最近想折腾一个东西,需要自己搞一个 nuget 包的解析,用户指定 nuget 包的名称和版本,然后去解析对应的 nuget 包并添加引用到项目, 于是就想搞明白 nuget 包是怎么还原的,对于本地已经下载了的 nuget 包又是怎么找的 Nuget 包的引用 对于 dotnetcore 项目(这里不算之前那种 project.json 的项目,只讨论 *.csproj 这种项目),都是使用新的项目格式, PackageReference 模式 示例: <PackageReference Include="WeihanLi.Common" Version="1.0.39" /> 对于 dotnet framework 项目,如果使用 PackageReference 包格式和上面一样,如果是传统的 packages.config 包形式,会有一个 packages.config 的文件包含引用的 nuget 包,文件内容示例: <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" /> </packages>

dotNET Core 3.X 使用 Autofac 来增强依赖注入

回眸只為那壹抹淺笑 提交于 2020-07-25 06:23:59
在上一篇《 dotNET Core 3.X 依赖注入 》中简单介绍了 dotNET Core 框架本身的依赖注入功能,大部分情况下使用框架的依赖注入功能就可以满足了,在一些特殊场景下,我们就需要引入第三方的注入框架。 为什么要使用 Autofac? 如果您在之前的 dotNET Framwork 时代使用过依赖注入,那么对 Autofac 一定不会陌生,在 dotNET Core 中也可以很方便的使用 Autofac,之所以使用第三方注入框架,是因为能提供更多的功能: 属性注入 批量注入 动态代理的 AOP 功能 在 dotNET Core 中使用 Autofac 在 dotNET Core 2.x 和 3.x 中使用 Autofac 是有区别的,所以下面分别介绍在两个版本中的简单使用。 2.x 1、创建 dotNET Core 2.1 版本的 WebAPI 项目; 2、创建 IUserService 接口和 UserService 类 public interface IUserService { string GetUserName(); } public class UserService: IUserService { public string GetUserName() { return "oec2003"; } } 3、创建 UserController

asp.net core与.net core

会有一股神秘感。 提交于 2020-07-24 14:32:26
基于.net core的应用程序能够运行在不同的操作系统平台。Asp.net core是基于.net core平台的Web开发框架。 .NET Core简介 CoreCLR 基类库 Roslyn编译器 .NET Cire CLI工具 Asp.net core具有以下有点: 跨平台 统一Web UI与Web API开发 基于环境配置以及云就绪配置 内置依赖注入 轻型的高性能模块化HTTP请求管道 能够在IIS、Nginx、Apache和Docker上进行托管或者在当前进程内自托管 基于 .net core的框架 简化新式Web开发工具,命令行或者Visual Studio Code、Visual Studio 在Visual Studio Code上的开发插件:vscode-solution-explorer、c#、vscode-icon、NuGet Package Manager、C# XML Documentation Comments, vscode-drawio(做图插件) 创建一个web应用,命名为demo 然后点击运行项目 在浏览器里面输入http://localhost:5000 来源: oschina 链接: https://my.oschina.net/it110/blog/4326341

.NET Core 玩一玩 Ocelot API网关

偶尔善良 提交于 2020-07-24 05:06:58
.net 这几年国内确实不好过。 很多都选择转行。不过.net Core跨平台 开源之后 。社区的生态在慢慢建立。往好的趋势发展。 对于坚守在.NET战线的开发者来说 是个挺不错的消息。 特别是微软收购75亿美金GitHub。.net 生态 社区圈子。肯定会有所上升。 发展趋势越来越好。(当然 这只是我个人祈愿) 最近也比较懒。也有段时间没有写过文章了。 但对于追寻新技术渴望学习 是不会断的 最近微服务比较火热。 将以个大型项目根据业务可以拆分成一个个的较小的独立项目。便于管理 且互相协作 什么是Ocelot Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成 但是现在网上关于Ocelot的文章还是有限。 首先感谢几位大佬 Ocelot的文章 https://www.cnblogs.com/shanyou/p/7787183.html (张友善 大神) https://www.cnblogs.com/Leo_wl/p/7852311.html ( HackerVirus 大神) https://www.cnblogs.com/jesse2013/p/net-core

Consuming nuget package containing .targets file via PackageReference

痞子三分冷 提交于 2020-07-23 04:53:46
问题 I have .NET452 project - lets call it Consumer.csproj that I want to consume nuget lets call it SharedTargets that contained some custom targets files ( SharedTargets.targets ) from msbuild. I'm using PackageReference format and now (compared to what it used to be) nuget packages are being restored to shared folder (%userprofile%.nuget\packages), and I'm not sure if it is good idea to reference it via that (doesn't feel right). Eg: <PackageReference Include="SharedTargets"> <Version>1.0<

Consuming nuget package containing .targets file via PackageReference

风格不统一 提交于 2020-07-23 04:53:41
问题 I have .NET452 project - lets call it Consumer.csproj that I want to consume nuget lets call it SharedTargets that contained some custom targets files ( SharedTargets.targets ) from msbuild. I'm using PackageReference format and now (compared to what it used to be) nuget packages are being restored to shared folder (%userprofile%.nuget\packages), and I'm not sure if it is good idea to reference it via that (doesn't feel right). Eg: <PackageReference Include="SharedTargets"> <Version>1.0<