【问题标题】:Deploying .net Core web app to ubuntu linux将 .net Core Web 应用程序部署到 ubuntu linux
【发布时间】:2016-08-20 07:09:24
【问题描述】:

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

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

所以...

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

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

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

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

注意:我在另一个堆栈溢出问题中读到,只要它的 coreclr,它的 win 或 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 默认 1.0.0-rc1-update2 coreclr x86 C:\Users\Alex.dnx\runtimes

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

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

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

【问题讨论】:

  • 您从未真正说出您遇到了什么错误。是的,人们可以并且已经将他们的应用程序部署到 Linux。如果您仍在学习 ASP.NET,最好不要使用仍在不断变化且缺乏文档的前沿技术。
  • 希望上面的额外信息可以提供更多信息。塔

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


【解决方案1】:

好的,方法如下:

  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 中

可以通过herehere获取RID列表(-r)。

如果你想在 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”。 需要正数。

构建失败。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-05-27
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多