Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将.net核心web应用程序部署到ubuntu linux_Asp.net_Linux_Ubuntu_Web Applications_Coreclr - Fatal编程技术网

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

Asp.net 将.net核心web应用程序部署到ubuntu linux,asp.net,linux,ubuntu,web-applications,coreclr,Asp.net,Linux,Ubuntu,Web Applications,Coreclr,我有一个应用程序是在asp.NET4.5中开发的,我想把它移到asp.NETCore上,在linux服务器(ubuntu)上运行 我已经遇到了很多挑战,不幸的是,当前的文档没有帮助 所以 我应该如何打包应用程序 技术文档建议使用以下命令进行构建 dnu发布--运行时dnx-CORECRL-linux-x64.1.0.0-rc1-update1 然而,我在我的本地机器上尝试了这个方法,它没有选择部署linux版本。当我在服务器上运行时,它会出现一些问题(稍后讨论)。所以我应该在服务器上做这件事,还

我有一个应用程序是在asp.NET4.5中开发的,我想把它移到asp.NETCore上,在linux服务器(ubuntu)上运行

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

所以

我应该如何打包应用程序

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

dnu发布--运行时dnx-CORECRL-linux-x64.1.0.0-rc1-update1

然而,我在我的本地机器上尝试了这个方法,它没有选择部署linux版本。当我在服务器上运行时,它会出现一些问题(稍后讨论)。所以我应该在服务器上做这件事,还是在本地机器上工作

注意:我在另一个堆栈溢出问题中读到,只要它的coreclr,它的胜利与linux无关

我想在回答了这个问题之后,会出现更多的问题。我对Core有太多的问题,我想知道是否有人真的成功地将应用部署到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 default 1.0.0-rc1-update2 coreclr x86 C:\Users\Alex.dnx\runtimes

我想把它编译成coreclr linux…但是当我在上面运行dnu publish命令时,它说运行时不存在,即使我从nuget更新了coreclr

当我构建一个操作系统(linux或windows)时,我需要指定它吗?或者如果它的coreclr是,一个发布的应用程序会在这两个操作系统上运行吗

这在导入Azure时运行良好,但在部署到linux时不起作用。好的,下面介绍如何:

  • 安装Visual Studio 2017(带.NET核心)

  • 创建项目,并在Windows上编译

  • 一旦它编译并运行,请确保您可以从VisualStudio发布它

  • 一旦可以从VisualStudio发布它,请关闭VisualStudio并执行以下操作

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

  • 您的应用程序现在应该位于文件夹bin/publish中

  • 可以获得RID(-r)的列表,然后单击

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

    apt-get install dotnet-dev-1.0.1
    
    dotnet实用程序应该在Linux上运行

    注意,如果你

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

    生成失败


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

    您实际上从未说过会出现什么错误。是的,人们可以并且已经将他们的应用程序部署到Linux上。如果您仍在学习ASP.NET,最好不要使用仍在不断变化且缺乏文档的最新内容。希望上面的额外信息提供更多信息。助教