在.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