在生成.net core 3.0程序时不包含nuget库

在.net core 3.0中,默认的生成行为有了两个变化,一个是默认生成可执行文件,另一个是会复制依赖的Nuget项

前一个变化会默认生成可执行的exe,用起来更加方便了。另一个变化可能是为了减少复制到别的机器上不能运行的困惑而修改的。但这个变化会在程序目录带来一大堆依赖的dll文件, 下图演示我只引用的一个MongoDB.Driver库的时候,就额外带了了5个dll,尤其是当项目一大的时候,要想在引入的几十个dll中找到几个项目的dll是一件比较麻烦的事情。

而在.net core 2.x的时候,则只会生成项目相关的dll,也不影响exe的执行(拷贝到别的机器会因为缺少nuget的dll无法运行),看起来要清爽得多。

查了一下相关文档,可以恢复成以前的行为:在csproj文件中的PropertyGroup组中增加CopyLocalLockFileAssemblies配置,设置为false即可。

<PropertyGroup>
    <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
</PropertyGroup>

设置了之后,就有一个新的问题了,如果发布的时候需要哪些依赖的nuget的dll该怎么办呢?和.net core 2.x时候一样,使用dotnet publish发布即可。

转载于:https://www.cnblogs.com/TianFang/p/11560532.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值