我有一个.net核心控制台应用程序,我希望将其打包为.exe并分发给同事。
由于该产品的所有用户都在Windows 10上,因此我使用以下方式构建项目
dotnet build -r win10-x64
这很棒,因为它提供了一个小的部署程序包。现在,我已经介绍了第三方库(通过nuget),但是我有一个问题,那就是它们不包含在生成输出中。
是否有一种方法可以将.net核心项目构建为.exe,包括第3方库,但不是所有的点网库?
在下面@turobo的带领下,我得出以下结论:
dotnet publish -r win10-x64 -c Release --self-contained false
答案 0 :(得分:0)
您快到了。您需要使用“ dotnet publish”命令来创建一个dotnet软件包。在dotnet core中,不应使用build命令来创建可分发的程序包。
如果项目具有第三方依赖性,例如来自 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