将 ASP.NET 核心部署到 linux——避免 50 MB 部署?

Deploying ASP.NET Core to linux -- avoiding 50 MB deploy?

我能够将 CoreCLR ASP.NET 应用程序部署到 Linux 并拥有它们 运行,万岁。为此,我使用

dnu publish --no-source -o <dest-dir>

这为我提供了一个包含许多 CoreCLR 包的目标目录,其中一个是专门针对我发布的应用程序的包。

此文件夹非常大,https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-app-using-vscode/ 中描述的简单 Web 应用程序基础(无身份验证)大约有 50 MB。

有没有一种明智的方法可以部署到 Linux 而无需花太多时间?我能以某种方式摆脱一堆那些 CoreCLR 包吗?有没有一种部署源代码并在服务器上完成工作的好方法(我可能已经看到了一些关于这个的东西,但如果我看到了我就失去了它)?

您已经在没有运行时的情况下发布(dnu publish 上的 --runtime 选项),这会显着减小包的大小。

您需要以某种方式在服务器上获取这些包。即使您只部署源,您也必须恢复,这将下载相同数量的包。此外,运行 from sources 使应用程序启动速度明显变慢(取决于依赖项的数量)。

但是,如果您一次发布整个包并且您的应用程序的依赖项没有改变,您可以只上传与您的项目对应的文件夹,而不是重新上传所有依赖项。