如何使用 DNX 和 ASP.NET 5 实施持续交付

How to implement Continuous Delivery with DNX and ASP.NET 5

我已经在 .net 平台上工作了几年,我必须说我对 Microsoft 使 .net 跨平台兼容的方式印象深刻。

我花了几个小时尝试 运行 在 mac 上使用 CoreCLR 构建的小型 hello world 应用程序。它奏效了。虽然还有很多未知数我仍在努力理解,但有一个问题我无法在 google.

上找到答案

如何自动部署 dnx 应用程序。我的意思是,您是否将您的 aspnet 5 应用程序编译成一个 nuget 包,然后将其恢复到您的 linux 服务器上(我从未使用过 linux,所以不确定 nuget 在那里如何工作),并且 运行 dnx 命令?或者直接压缩并推送到服务器?

抱歉,这对我来说都是全新的,所以我的问题可能听起来很愚蠢。我只想知道为我的 asp.net 5 个应用程序实施持续交付的最佳方式是什么。我的最终目标是在 linux 个容器上托管我的应用程序。

您可以使用 dnu publish --runtime <name of runtime> --no-source。这会创建一个文件夹,其中包含您的应用程序、它的依赖项和运行时。然后,您所要做的就是在您的服务器上获取该文件夹。

如何移动文件实际上取决于您的场景...可能是 FTP、存储、Kudu(如果您使用的是 Azure 网站)等

另一种方法是在服务器上进行还原。虽然这会在发布时减小应用程序的大小,但您将不得不在服务器上恢复包,这可能是不安全的,并且还可能导致应用程序中断,因为提要上可能有更新的、不兼容的包。

虽然没有适合所有人的正确答案,但我发现如果您想获得最可靠和一致的结果,您应该发布所有内容,在本地测试,然后将包复制到您的服务器上。

对于docker,我推荐同样的东西。使用运行时和无源发布并创建一个包含结果文件夹的容器。