gpt4 book ai didi

.net-core - 我可以缩小 dotnet 发布包吗

转载 作者:行者123 更新时间:2023-12-05 02:14:59 33 4
gpt4 key购买 nike

我最近开始使用 dotnet 核心(与老式的普通 .net 相对)进行开发,以创建许多小型实用程序控制台应用程序。

进展顺利,到了我要发布的地步。

我正在使用 CLI,因为我只对 Win 10 部署感兴趣,所以尝试过

dotnet publish -c release -r win10-x64

它工作并为我构建了一个“发布”文件夹,其中似乎一切正常,尽管与应用程序的大小(~500 行代码)相比,“发布”文件夹很大(~70mb)。

因为我只打算部署到 Win10 机器上,有没有办法打包它,这样我就不需要所有的 .NET 文件了?我认为这就是 -r 选项的作用,但似乎并没有取得多大成就。

最佳答案

这取决于您希望如何部署您的应用程序/谁将使用它们。

-r 标志创建一个独立的应用程序。这会导致 publish 命令包含指定平台所需的 .NET Core DLL(以及平台特定的 nuget 包,如果它们可用),这意味着任何人都可以使用该应用程序而无需安装 .NET Core运行时。

如果您删除 -r 标志,则 publish 将只包含您应用程序的 DLL。但这意味着无论谁想要使用您的应用程序,都必须先安装 .NET Core 运行时。

您可以使用 -o 标志将发布输出写入不同的目录,例如

dotnet publish -c release -r win10-x64 -o ./publish-win10

dotnet publish -c release -o ./publish-any

现在查看写入到 ./publish-win10./publish-any 文件夹中的内容,您可以了解其中的区别。

如果您将它们安装到已存在 .NET Core 运行时的系统上,那么您只需分发 DLL 即可节省大量空间。但是,如果您希望能够在最终用户不必担心安装 .NET Core 运行时的情况下分发应用程序,那么使用 -r 标志来创建独立分发是可行的方法,但会导致包含必要的 .NET Core 程序集的“包”。

据我所知,-r 标志不会影响您的应用程序的编译方式,只会影响哪些运行时 DLL 作为 publish 命令的一部分。因此,如果您为 win10-x64 发布代码,或者使用或不使用 -r 标志,您的代码总是会获得相同的 DLL,这样您的应用程序 DLL 将在任何平台上运行(.NET Core 兼容)平台,但我很高兴在这一点上得到纠正。

关于.net-core - 我可以缩小 dotnet 发布包吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787928/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com