使用Visual Studio 2015将ASP.NET 5发布到Linux

3

我正在研究如何发布ASP.NET 5项目(来自Visual Studio),使其在Linux上运行。

在Visual Studio 2015中,我正在使用文件系统发布功能。在设置中有一个“目标DNX版本”的选项。我有四个选择:

  • dnx-coreclr-win-x64.1.0.0-rc1-update1
  • dnx-coreclr-win-x86.1.0.0-rc1-update1
  • dnx-clr-win-x64.1.0.0-rc1-update1
  • dnx-clr-win-x86.1.0.0-rc1-update1

我使用dnvm安装了dnx-coreclr-linux-x64.1.0.0-rc1-update1,因为我认为我可以在Visual Studio中使用这个版本进行发布。安装后,它没有出现在“目标DNX版本”列表中,因此我无法使用Linux dnx进行发布。

我做错了什么吗?dnu、dnx、dnvm对我来说都是新的,有点令人困惑。

我也知道您可以复制源文件并在Linux上恢复/构建项目,但是我认为发布文件更加“干净”。

或者现在可能不支持这个?

感谢任何帮助!

1个回答

3
编辑:请注意,此内容仅适用于RC1。RC2将不支持这些可执行文件。它们将被dotnet-cli取代。

我想我知道你想要什么,但如果不是完全相同,请让我知道,我会调整我的答案。

dnvm:.NET版本管理器

管理不同的运行时,并允许您选择当前运行时。

dnu:.NET实用程序

管理软件包。主要用于dnu restore,一旦您的应用程序已经启动和运行。

dnx:.NET执行引擎

通过执行命令来运行您的应用程序/网站。通常使用dnx web,但web在您的project.json中定义,因此可以是任何内容。

那么如何更改我的运行时?

所以根据我们刚才看到的,如果在我的系统上运行dnvm list,我会得到以下结果:

dnvm list

显然你没有那个。但是让我们安装x64以展示一个例子。

dnvm install -a x64 -r clr -version 1.0.0-rc1-final

现在我有这个:

dnvm list 2

所以我已经安装了64位,但它不是默认运行时,更糟糕的是...如果我重新启动命令提示符,它将默认回到x86。这意味着在此系统上运行的所有内容都将自动默认为x86。

更改默认值只需要运行以下命令:

dnvm alias default -a x64 -r clr -os win -version 1.0.0-rc1-final
dnvm use default -Persistent

现在当我重新启动命令提示符时,会出现以下内容: final dnvm 这应该已经为您设置并运行了最新的运行时。如果您使用不同的用户运行进程,强烈建议您使用相同的命令设置该用户,因为它们存储在用户的PATH中。

感谢您的解释,这一切都很有道理。我安装了以下运行时:http://i.imgur.com/GPUceWJ.png。问题实际上在 Visual Studio 中。每当我想要发布新创建的 asp.net 5 网站时,我没有选择 Linux 运行时的选项:http://i.imgur.com/EZmuSPB.png。您对此问题有任何想法吗?编辑:也许安装的运行时与 Visual Studio 的“目标 DNX 版本”无关? - Senne
1
你发布的所有“coreclr”内容都保证可以在Windows/Linux/OSX上运行。因此,你不需要“为Linux发布”。没有Linux运行时。在“dnvm”中提到“os”的唯一原因只是为了信息目的。一旦你的代码启动(如果是coreclr),它将自动使用活动的架构/运行时。 - Maxime Rouiller
或者至少是你在发布期间提到的那些。我对发布流程还不是完全了解。 - Maxime Rouiller
啊,这就解释了!让我在使用coreclr-win时尝试一下。 - Senne
实际上,如果我仅使用coreclr-win似乎并没有任何区别。我应该首先尝试它是否工作。无论如何,谢谢您的解释! - Senne
不客气。如果我的回答符合您的问题,您可以将其标记为已解决。 - Maxime Rouiller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接