已发布的 .Net-Core 应用程序无法运行

Posted

技术标签:

【中文标题】已发布的 .Net-Core 应用程序无法运行【英文标题】:Published .Net-Core App won't run 【发布时间】:2018-11-17 01:05:28 【问题描述】:

我使用以下命令在 dotnet 2.1 中发布了我的 Ubuntu 应用:

dotnet publish -c Release -v ubuntu-x64

我在 Ubuntu 上有 .net-core 运行时。当我想在目录中运行可执行文件时,会出现此错误:

应用程序依赖项清单中指定的程序集...未找到

但是当我转到发布目录并运行可执行文件时,它工作正常。 所以我的问题是我应该在发布时使用无故障的,还是应该修复一个错误?

编辑(开发者机器的 .NET 核心信息):

.NET Core SDK(反映任何 global.json):版本:2.1.300 提交:adab45bf0c

运行时环境:操作系统名称:Windows 操作系统版本:10.0.15063 操作系统平台:Windows RID:win10-x64 基本路径:C:\Program 文件\dotnet\sdk\2.1.300\

主机(用于支持):版本:2.1.0 提交:caa7b7e2ba

.NET Core SDK 已安装: 1.1.8 [C:\Program Files\dotnet\sdk] 2.1.104 [C:\Program Files\dotnet\sdk] 2.1.200 [C:\Program Files\dotnet\sdk] 2.1.300 [C:\Program Files\dotnet\sdk]

.NET Core 运行时安装:Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.0 [C:\Program 文件\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 1.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 1.1.7 [C:\Program 文件\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.7 [C:\Program 文件\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

编辑(Ubuntu 机器的 .NET 核心信息):

.NET Core SDK(反映任何 global.json):版本:2.1.300 提交:adab45bf0c

运行环境:操作系统名称:ubuntu 操作系统版本:18.04 操作系统 平台:Linux RID:ubuntu.18.04-x64 基本路径: /usr/share/dotnet/sdk/2.1.300/

主机(用于支持):版本:2.1.0 提交:caa7b7e2ba

.NET Core SDK 已安装: 2.1.300 [/usr/share/dotnet/sdk]

.NET Core 运行时安装:Microsoft.AspNetCore.All 2.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

【问题讨论】:

您是否正在从 .NET Core 2.0 升级您的应用程序? 我认为您运行了错误的命令。试试这个:dotnet publish -c Release -r ubuntu-x64. @WillHuang 我使用了你的命令。不幸的是,一切都没有改变。 你能分享你的dotnet --info 输出吗? @WillHuang 添加为编辑。 【参考方案1】:

您安装了错误的 .NET Core 运行时/SDK。您应该 install the latest .NET Core 2.1 SDK or Runtime 正确运行您的 .NET Core 2.1 应用程序。

.NET Core 2.1 SDK 版本号应为v2.1.300。 .NET Core 2.1 运行时版本号应为v2.1.0

【讨论】:

@AliSh 你的dotnet --info 看起来有问题。你的意思是你可以在你的开发机器上运行应用程序,而不能在你的其他 Ubuntu 机器上运行?你在哪里运行dotnet --info 命令? 是的,我可以在开发人员机器上运行它。我还添加了来自 Ubuntu 机器的信息。 在错误中,为程序集指定的路径位于“lib/netcoreapp2.0/”或“lib/netstandard2.0/”中,但我检查了这些文件夹不存在! @AliSh 你在dotnet publish -c Release -v ubuntu-x64做的时候可以截图吗?

以上是关于已发布的 .Net-Core 应用程序无法运行的主要内容,如果未能解决你的问题,请参考以下文章

ejabberd 'make' 通过“无法运行已编译的 C 程序”

首次执行时无法运行已编译的 C++ 程序

Xcode 5 应用程序在 IOS 8 的已发布版本下无法运行

完成安装后,模拟无法运行已安装的应用程序

Windows、Mingw Qt 应用程序无法在已部署的计算机上运行

Qt 静态应用程序无法在已部署的系统上运行