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

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

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

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

查了一下相关文档,能够恢复成之前的行为:在csproj文件中的PropertyGroup组中增长CopyLocalLockFileAssemblies配置,设置为false便可。blog

<PropertyGroup>
    <CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
</PropertyGroup>
文档

设置了以后,就有一个新的问题了,若是发布的时候须要哪些依赖的nuget的dll该怎么办呢?和.net core 2.x时候同样,使用dotnet publish发布便可。get

相关文章
相关标签/搜索