asp.net - 将 .net Core Web 应用程序部署到 ubuntu linux

标签 asp.net linux ubuntu web-applications coreclr

我有一个在 asp.net 4.5 中开发的应用程序,我想将它移动到 asp.net core 并在 linux 服务器 (ubuntu) 上运行。

我遇到了很多挑战,不幸的是,当前的文档没有帮助。

所以...

我应该如何打包应用程序?

技术文档建议使用以下命令构建

dnu publish --runtime dnx-coreclr-linux-x64.1.0.0-rc1-update1

但是我在我的本地机器上试过了,它没有部署 linux 版本的选项。当我在服务器上运行时,出现了一些问题(稍后介绍)。那么我应该在服务器上执行此操作还是在本地计算机上工作。

注意:我在另一个堆栈溢出问题中读到,只要它的 coreclr 无论是 win 还是 linux 都没有关系?

我想在回答这个问题之后会出现更多问题。我在 Core 方面遇到了很多问题,我想知道是否有人真的设法将应用程序部署到 Linux 环境!

如有任何帮助,我们将不胜感激!

更新

为了提供更多信息,当前在本地机器上的运行时间是...

Active Version Runtime Architecture Location Alias
------ ------ ------ -------------- ------ -----
1.0.0-beta5 clr x64 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 clr x86 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 coreclr x64 C:\Users\Alex.dnx\runtimes
1.0.0-beta5 coreclr x86 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 clr x64 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 clr x86 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 coreclr x64 C:\Users\Alex.dnx\runtimes
1.0.0-rc1-update1 coreclr x86 C:\Users\Alex.dnx\runtimes
* 1.0.0-rc1-update2 clr x86 C:\Users\Alex.dnx\runtimes 默认 1.0.0-rc1-update2 coreclr x86 C:\Users\Alex.dnx\runtimes

我想将它编译为 coreclr linux....但是当我运行上面的 dnu publish 命令时它说运行时不存在即使我从 nuget 更新 coreclr?

我在构建它时是否需要指定一个操作系统(Linux 或 Windows),或者一个已发布的应用程序是否可以在其 coreclr 上运行?

这在导入到 Azure 时运行良好,但在部署到 linux 时不起作用

最佳答案

好的,下面是方法:

  1. 安装 Visual Studio 2017(使用 .NET Core)

  2. 创建您的项目,并让它在 Windows 上编译

  3. 编译并运行后,确保您可以从 Visual Studio 发布它

  4. 一旦您可以从 Visual Studio 发布它,关闭 Visual Studio 并执行以下操作

    打开 cmd.exe(Windows 键 + R)
    cd "你的 .sln 文件的目录"
    dotnet restore -r ubuntu.16.04-x64
    dotnet build -r ubuntu.16.04-x64
    dotnet publish -f netcoreapp1.1 -c Release -r ubuntu.16.04-x64

  5. 您的应用程序现在应该在文件夹 bin/publish 中

可以获得RID列表(-r)herehere .

如果你想在 Linux 上开发,运行

apt-get install dotnet-dev-1.0.1

并且 dotnet-utility 应该在 Linux 上运行。

注意如果你得到

C:\Program Files\dotnet\sdk\1.0.0\Microsoft.Common.CurrentVersion.targets(2865,5): error MSB3554: Cannot write to the output file "C:\path\to\your\project\obj\Debug\netcoreapp1.1\YOUR_APP.Properties.Resources.resources". Positive number required.

Build FAILED.

当您运行构建或发布命令时,只需再次运行该命令即可。

关于asp.net - 将 .net Core Web 应用程序部署到 ubuntu linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865207/

相关文章:

c# - 使用 asp.net core 2.1 执行获取操作

c# - 在 VS 2017 中针对完整的 .net 框架 asp.net 核心项目运行 XUnit 2.2.0 单元测试时出现 System.BadImageFormatException

c# - 如何遍历匿名类型的列表

linux - BASH : Filter list of files by return value of another command

python - 意外 apt-get remove python 后如何恢复

asp.net - 如何停止 ASP.NET Webforms 页面缓存不同版本

linux - 在 ubuntu 上安装 semantic-UI(终端错误)

java - 在ubuntu上设置eclim的问题

node.js - 使用 Node 串行读取串行端口

python - 如何使用 Linux 将程序的输出重定向到 .txt 文件