.Net Core 引用本地类库dll 发包方式

Posted wangshitou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net Core 引用本地类库dll 发包方式相关的知识,希望对你有一定的参考价值。

最近了解到的Core 项目,引用本地DLL的方式有三种

1、非同解决方案下的引用,直接引用,浏览,找到对应的DLL,然后确定引用。

这种方式有个不好的地方就是,如果引用的DLL文件里面,也引用了第三方DLL,那么通过这种方式引用,第三方DLL不会跟着引用进来,需要在项目里面重新又引用一次。

技术分享图片

 

2、同解决方案下,通过项目引用

技术分享图片

这种方式,就不需要再同解决方案下, 这样会项目太大,编译较慢,不过不存在上面那种方式的问题;

3、类库生成包,然后站点通过NuGet方式引用。今天重点记录一下这种方式的详细操作过程;

①、新建Core 类库

技术分享图片

类库里面新建一个类即可,只作为测试

技术分享图片

类库已经建好,下面开始打包,可以通过nuget命令方式打包,也可以直接选中项目,右键打包即可

a、命令方式:

打开nuget 控制台

技术分享图片

输入如下命令

dotnet pack F:测试项目代码-待删CoreTest.LibraryPigMGT.DB.PigMGT_Stat --output F:测试项目代码-待删CoreTest.Library upkg   

前面的地址是需要生成的项目文件路径,后面的output 接的路径是指包文件生成路径

技术分享图片

2、鼠标右键方式:

技术分享图片

技术分享图片

这种方式默认包生成路径在该项目下,Bin =》debug 文件夹下,这里重点看下,这种方式有个问题就是第一次点击发包,然后生成成功,但是当你再次点击发包,则失败

技术分享图片

提示成功0个,这代表重新打包失败了,需要右键点击清理后才可以再次进行打包。

好像,通过上面的操作,我们的类库包已经打包好了,可以看看包文件

技术分享图片

文件后缀是nupkg 格式的,注意看下,这里的1.0.0 是对应的版本好,这个很重要,下面会详细说到;

②、.core 项目引用包的操作方式

前面有说到,引用包是通过nuget 的方式引用的,这个也是core  的一个特色,引用第三方插件都是通过nuget 的方式直接搜索安装即可,下面来操作一下,先配置一下数据源,因为默认是没有你本地的包文件数据源的

技术分享图片

技术分享图片

添加一个程序源,记得路径要改为你的包路径,点击确定

然后再进行引用

技术分享图片

技术分享图片

 

这里就可以看到我们刚建的类库项目了,选中直接安装即可,这样就已经引用成功啦

技术分享图片

 

 后台代码直接就可以调用这个包里面的类进行操作了,这样整个操作已经完成,不过我在操作过程中,有遇到几个问题,这里重点记录一下

1、重复打包失败问题,前面有说到,需要清理后重新打包即可

2、如果包需要更改,更改后怎么重新打包引用。

我在测试过程中,在类里面加了个属性,但是重新引用后,还是没有变成改之后的参数,不管是删掉nuget程序源或重新建站点,都是如此,如果我就怀疑是不是包的问题,我给我更新后的包给同事,但是在他那边确实更新后的包,这样,就确定了包其实是没有问题的,后面,发现了这个其实和包的版本有关,前面有说到那个版本问题,默认是1.0.0,如果这个版本不变,则即使包更改了,重新引用还是如此,都是改之前的,解决方式就是更改包后,需要更改他的包版本,如下:

技术分享图片

更改后然后重新打包,然后包的文件就变成了技术分享图片,名称和版本号保持一致(不要想说重命名包名就可以,我试过了,是不行的哦),此时,版本号变了后,站点Nuget 解决方案就会自动有更新的提示,你直接点击安装即可,这样,就已经更新到了最新的包版本,这种方式就有个问题,如果每次更新类库了,都需要改它的版本号才行,我目前了解是这样,也许有其他方式

技术分享图片

好啦,以上完毕,我也是才接触,如果有什么问题大家只管留言

 

以上是关于.Net Core 引用本地类库dll 发包方式的主要内容,如果未能解决你的问题,请参考以下文章

asp.net中如何引入Ajax类库

Net Core 多项目开发(net core 类库项目使用)

无法从完整的 .NET 项目项目引用 .NET Core 类库

如何在 .NET Core 类库中引用 Visual Studio 共享项目

Visual Studio 中的 .NET Framework 类库

无法在通用 Windows 或 WPF 应用程序中引用 .NET Core 类库