【问题标题】:Publishing a DotNetCore tool for multiple platforms为多个平台发布 DotNetCore 工具
【发布时间】:2018-11-15 10:37:59
【问题描述】:

我在 Dotnet-core 中编写了一个相当简单的命令行工具。它执行一些 fileIO 并调用一些 web-API。我想以二进制形式为多个平台发布它。我在想它可能是一个 NuGet 包。但我一直在构建可发布的二进制文件。

当我运行“dotnet publish”时 输出文件夹仅包含 DLL。

例如,当我运行“dotnet publish --runtime win7-x64”时 输出文件夹确实包含一个可执行文件。但是,它似乎还包括大约 67MB 的 DLL 和来自程序集/命名空间的其他二进制文件,我很确定我没有使用。 (也许我是在间接使用它们?)

我可以将“win7-x64”换成其他平台,如 ubuntu 或 osx。这些命令有效,并且生成的输出确实在这些平台上正确执行。我只是不急于为可能只有 300 行代码的工具提供那么多 MB。感觉好像我用错了框架。

如何以二进制格式和紧凑的方式发布我的工具?

提前致谢! -本

【问题讨论】:

    标签: .net .net-core publish


    【解决方案1】:

    您已选择独立选项。在这种情况下,67 MB 包含整个 .NET 核心框架,还可以选择在没有所有 .NET 框架的情况下部署应用程序。但目标系统必须安装 .NET 核心。我认为他们将添加另一个选项来部署到一个经过树抖动的单个可执行文件,并且它的大小在 .NET Core 3 中会更小。

    https://docs.microsoft.com/en-us/dotnet/core/deploying/

    如果您的工具是面向开发人员的,您可以将其发布为 .NET 全局工具:https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools-how-to-create

    【讨论】:

    • 值得一提的是“全局工具是依赖于框架的应用程序,这意味着它们依赖于安装在您机器上的 .NET Core 运行时”source。换句话说,它们不会带来 60+ MB 的运行时间。
    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多