.NET Core项目中引用.net framework封装的dll库

6 篇文章 0 订阅
5 篇文章 0 订阅

dotnet core引入了包的概念,像之前直接引用封装好dll的方式已经行不通了。不过core提供了更加灵活更具有组件化思维的方式:包。nuget包管理器一直都存在,这次是将其作为了。net引用库的唯一路径。

遇到的问题:

刚升级vs 2017进行dotnet core开发时,引用了之前封装好的dll,进行使用。引用、编译都正常,只是在运行的时候提示找不到方法或命名空间。然后在网上找到了一种临时的方案,启动启动时,动态加载dll。


private static void TryLoadAssembly()
        {
             Assembly entry = Assembly.GetEntryAssembly();
             //找到当前执行文件所在路径
             string dir = Path.GetDirectoryName(entry.Location);
             string entryName = entry.GetName().Name;
             //获取执行文件同一目录下的其他dll
             foreach (string dll in Directory.GetFiles(dir, "*.dll"))
             {
                 if (entryName.Equals(Path.GetFileNameWithoutExtension(dll))) { continue; }
                 //非程序集类型的关联load时会报错
                 try
                 {
                     AssemblyLoadContext.Default.LoadFromAssemblyPath(dll);
                 }
                 catch (Exception ex)
                 {
                 }
             }
         }

以上是在dotnet core里面强制引用的dll的方式。

引用包的方式:

1. 用vs2017打开之前的库的项目,在nuget包管理控制台执行: dotnet pack,就完成了打包的过程。

会在项目的bin\debug目录下生成后缀为nupkg的文件,这就是包文件。

将包拷贝到

自己新建的包目录,然后项目中就会看到自己的包,右边点击安装就可以了。

安装后在项目中直接使用库里面的方法和类。
---------------------
作者:sharphou
来源:CSDN
原文:https://blog.csdn.net/sharphou/article/details/80746551
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值