将.net Core web应用程序部署到ubuntu linux

我有一个应用程序,我正在开发的asp.net 4.5,我想把它移动到asp.net核心,并运行在Linux服务器(Ubuntu的)。

我一直有一些challanges,不幸的是目前的文件是没有帮助的。

所以…

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

技术文档build议使用以下命令进行构build

dnu发布–runtime dnx-coreclr-linux-x64.1.0.0-rc1-update1

不过,我在我的本地机器上试过,并没有select部署Linux版本。 当我在服务器上运行时,会出现一些问题(稍后介绍)。 所以我应该这样做在服务器上或在本地计算机上工作。

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

我想这个答案后,会有更多的问题会出现..我有很多与核心问题我想知道是否有人真的pipe理应用程序部署到Linux环境!

任何帮助将不胜感激!

更新

提供进一步的信息在本地机器上的当前运行时间…

活动版本运行时体系结构位置别名
—— ——- ——- ———— ——– —–
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发布命令它说运行时不存在,即使我从nuget更新coreclr?

当我构build它时,是否需要指定一个操作系统(Linux或Windows),或者如果它的coreclr在单独发布的应用程序上运行?

导入到Azure时运行正常,但在部署到Linux时不起作用

好,以下是如何:

  1. 安装Visual Studio 2017(与.NET核心)
  2. 创建你的项目,并让它在Windows上编译
  3. 编译并运行后,确保可以从Visual Studio发布它
  4. 一旦您可以从Visual Studio发布它,关闭Visual Studio并执行以下操作

    打开cmd.exe(Windows-Key + R)
    cd“你的.sln文件的目录”
    dotnet恢复-r ubuntu.16.04-x64
    dotnet构建-r ubuntu.16.04-x64
    dotnet发布-f netcoreapp1.1 -c发布-r ubuntu.16.04-x64

  5. 你的应用程序现在应该在文件夹bin /发布

RID列表(-r)可以在这里和这里获得。

如果你想在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:无法写入输出文件“C:\ path \ to \ your \ project \ obj \调试\ netcoreapp1.1 \ YOUR_APP.Properties.Resources.resources”。 所需的正数。

建立失败。

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