将.net核心Web应用程序部署到ubuntu linux

时间:2016-04-26 12:38:59

标签: asp.net linux ubuntu web-applications coreclr

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

我一直有很多挑战,不幸的是,目前的文档没有帮助。

所以...

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

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

  

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

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

注意:我读到了另一个堆栈溢出问题,只要它的coreclr无论是win还是linux都不重要?

我想在得到回答之后会出现更多问题。我对Core I有很多问题并且想知道是否有人真的想在app上部署到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 publish命令时,即使我从nuget更新coreclr,运行时也不存在?

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

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

1 个答案:

答案 0 :(得分:2)

好的,这是如何:

  1. 安装Visual Studio 2017(使用.NET Core)
  2. 创建项目,并在Windows上进行编译
  3. 编译并运行后,请确保您可以从Visual Studio
  4. 发布它
  5. 从Visual Studio发布后,关闭Visual Studio并执行以下操作

    打开cmd.exe(Windows-Key + 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

  6. 您的应用程序现在应位于文件夹bin / publish

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

    如果您想在Linux上开发,请运行

    apt-get install dotnet-dev-1.0.1
    

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

    请注意,如果你得到

      

    C:\程序   文件\ DOTNET \ SDK \ 1.0.0 \ Microsoft.Common.CurrentVersion.targets(2865,5):   错误MSB3554:无法写入输出文件“C:\ path \ to \ your \ project \ obj \ Debug \ netcoreapp1.1 \ YOUR_APP.Properties.Resources.resources”。   需要正数。

         

    构建失败。

    运行build或publish命令时,只需再次运行该命令。