最近了解到.NET Core 项目,引用本地类库DLL的方式有三种
1、非同解决方案下的引用,直接引用,浏览,找到对应的DLL,然后确定引用。
这种方式有个不好的地方就是,如果引用的DLL文件里面,也引用了第三方DLL,那么通过这种方式引用,第三方DLL不会跟着引用进来,需要在项目里面重新又引用一次。
2、同解决方案下,通过项目引用
这种方式,就不需要再同解决方案下, 这样会项目太大,编译较慢,不过不存在上面那种方式的问题;
3、类库生成包,然后站点通过NuGet方式引用。今天重点记录一下这种方式的详细操作过程;
①、新建.Net Core 类库
类库里面新建一个类即可,类里面增加几个属性,只作为测试
类库已经建好,下面开始打包,可以通过nuget命令方式打包,也可以直接选中项目,右键打包即可
a、命令方式:
打开nuget 控制台
输入如下命令
dotnet pack F:\测试项目代码-待删\CoreTest.Library\PigMGT.DB.PigMGT_Stat --output F:\测试项目代码-待删\CoreTest.Library\nupkg
前面的地址是需要生成的项目文件路径,后面的output 接的路径是指包文件生成路径
2、直接鼠标右键方式:
这种方式默认包生成路径在该项目下,Bin =》debug 文件夹下,这里重点看下,这种方式有个问题就是第一次点击发包,然后生成成功,但是当你再次点击发包,则失败
提示成功0个,这代表重新打包失败了,需要右键点击清理后才可以再次进行打包。
好啦,通过上面的操作,我们的类库包已经打包好了,可以看看包文件
文件后缀是nupkg 格式的,注意看下,这里的1.0.0 是对应的版本好,这个很重要,下面会详细说到;
②、.NET Core 项目引用包的操作方式
前面有说到,引用包是通过nuget 的方式引用的,这个也是Core的一个特色,引用第三方插件都是通过nuget 的方式直接搜索安装即可,下面来操作一下,先配置一下数据源,因为默认是没有你本地的包文件数据源的
添加一个程序源,记得路径要改为你的包路径,点击确定
然后再进行引用
这里就可以看到我们刚建的类库项目了,选中直接安装即可,这样就已经引用成功啦
后台代码直接就可以调用这个包里面的类进行操作了,这样整个操作已经完成,不过我在操作过程中,有遇到几个问题,这里重点记录一下
1、重复打包失败问题,前面有说到,需要清理后重新打包即可;
2、如果包需要更改,更改后怎么重新打包引用。
我在测试过程中,在类里面加了个属性,但是重新引用后,还是没有变成改之后的参数,不管是删掉nuget程序源或重新建站点,都是如此,怀疑是不是包的问题,把更新后的包给同事,但是在他那边却是更新后的包,这样,就确定了包其实是没有问题的,后面,发现了这个其实和包的版本有关,前面有说到那个版本问题,默认是1.0.0,如果这个版本不变,则即使包更改了,重新引用还是如此,都是改之前的,解决方式就是更改包源文件后,需要更改他的包版本,再打包,如下:
更改后然后重新打包,然后包的文件就变成了,名称和版本号保持一致(不要想说重命名包名就可以,我试过了,是不行的哦),此时,版本号变了后,站点Nuget 解决方案就会自动有更新的提示,你直接点击安装即可,这样,就已经更新到了最新的包版本,这种方式就有个问题,如果每次更新类库了,都需要改它的版本号才行,我目前了解是这样,也许有其他方式
这里还提示一下,打包方式不会存在包里面引用第三方插件还需重新引用的问题。
好啦,以上完毕,我也是才接触,如果有什么问题大家只管留言,三克油