【问题标题】:Building .net-core apps with 3rd party libraries使用 3rd 方库构建 .net-core 应用程序
【发布时间】:2019-05-29 17:34:54
【问题描述】:

我有一个 dot net core 控制台应用程序,我想将其打包为 .exe 并分发给同事。

由于该产品的所有用户都在 Windows 10 上,我使用构建项目

dotnet build -r win10-x64

这很棒,因为它提供了一个小型部署包。现在我已经介绍了 3rd 方库(通过 nuget),我遇到了一个问题,即它们没有包含在构建输出中。

有没有办法将点网核心项目构建为 .exe,包括 3rd 方库但不包括所有点网库?

找到解决方案

在@turobo 的引导下,我得到了以下结果:

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

【问题讨论】:

    标签: build .net-core nuget


    【解决方案1】:

    你快到了。您需要使用“dotnet publish”命令来创建一个 dotnet 包。在 dotnet core 中,构建命令不应该创建可分发的包。

    摘自dotnet build reference

    如果项目有第三方依赖,比如来自的库 NuGet,它们是从 NuGet 缓存中解析的,不适用于 项目的构建输出。考虑到这一点,dotnet 的产品 build 尚未准备好转移到另一台机器上运行。这是 与 .NET Framework 的行为相反,其中构建一个 可执行项目(应用程序)产生可运行的输出 安装了 .NET Framework 的任何计算机。拥有一个类似的 使用 .NET Core 的经验,您需要使用 dotnet publish 命令。 如需更多信息,请参阅.NET Core Application Deployment

    您正在寻找的是依赖于框架的可执行文件 (FDE)。摘自here

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

    这应该可行:

    dotnet publish -r win10-x64
    

    【讨论】:

    • 是的发布命令。我最终根据上面编辑的问题使用了该命令。不过感谢您的指点。
    猜你喜欢
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多