使用第三方库构建.net核心应用

时间:2019-05-29 09:08:05

标签: build .net-core nuget

我有一个.net核心控制台应用程序,我希望将其打包为.exe并分发给同事。

由于该产品的所有用户都在Windows 10上,因此我使用以下方式构建项目

dotnet build -r win10-x64

这很棒,因为它提供了一个小的部署程序包。现在,我已经介绍了第三方库(通过nuget),但是我有一个问题,那就是它们不包含在生成输出中。

是否有一种方法可以将.net核心项目构建为.exe,包括第3方库,但不是所有的点网库?

找到解决方案

在下面@turobo的带领下,我得出以下结论:

dotnet publish  -r win10-x64  -c Release --self-contained false

1 个答案:

答案 0 :(得分:0)

您快到了。您需要使用“ dotnet publish”命令来创建一个dotnet软件包。在dotnet core中,不应使用build命令来创建可分发的程序包。

摘录自dotnet build reference

  

如果项目具有第三方依赖性,例如来自   NuGet,它们是从NuGet缓存中解析的,不适用于   项目的构建输出。考虑到这一点,dotnet的产品   尚未准备好将构建版本转移到另一台计算机上运行。这是   与.NET Framework的行为形成对比的是,   可执行项目(应用程序)产生可在以下位置运行的输出   安装.NET Framework的任何计算机。有类似的   .NET Core的使用经验,您需要使用dotnet publish命令。   有关更多信息,请参见.NET Core Application Deployment

您正在寻找的是框架相关的可执行文件(FDE)。摘录自here

  

框架相关的可执行文件。产生可在   目标平台。与FDD类似,框架相关的可执行文件   (FDE)是特定于平台的,并且不是独立的。这些   部署仍然依赖于共享的系统范围版本   .NET Core的运行。与SCD不同,您的应用仅包含您的代码   以及.NET Core之外的任何第三方依赖项   库。 FDE生成在目标上运行的可执行文件   平台。

这应该有效:

dotnet publish -r win10-x64