相关疑难解决方法(0)

将.Net core控制台应用程序部署到Debian服务器

我在将简单的 .Net Core 控制台应用程序部署到 Linux 服务器时遇到一些问题。

我用这种方式创建了简单的控制台 Hello world 应用程序:

dotnet new console -o hello
Run Code Online (Sandbox Code Playgroud)

然后我在我的开发计算机上测试了这个应用程序

dotnet run
Run Code Online (Sandbox Code Playgroud)

效果很好。

接下来我用这种方式创建了 debian 平台的发布版本

dotnet publish -c release -r debian.8-x64 --self-contained
Run Code Online (Sandbox Code Playgroud)

现在我有一个带有分发的文件夹

C:\Projects\C#\hello\bin\MCD\release\netcoreapp2.0\debian.8-x64
Run Code Online (Sandbox Code Playgroud)

此外,我将文件夹 debian.8-x64 复制到装有 Debian 8 操作系统的 Linux 计算机上

找到要执行的文件 ( ~/debian.8-x64/hello) 并更改其模式

chmod +x ./hello
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试执行文件

./hello 
Run Code Online (Sandbox Code Playgroud)

并得到了一个例外

root@my2ndbox:/home/alex/temp/debian.8-x64# ./hello
Error:
  An assembly specified in the application dependencies manifest (hello.deps.json) was not found:
    package: 'runtime.linux-x64.Microsoft.NETCore.App', version: '2.0.0'
    path: 'runtimes/linux-x64/lib/netcoreapp2.0/Microsoft.CSharp.dll'
Run Code Online (Sandbox Code Playgroud)

Net Framework安装在Linux机器上,与我的开发计算机上的版本相同

root@my2ndbox:/home/alex/temp/debian.8-x64# dotnet --version
2.0.2
Run Code Online (Sandbox Code Playgroud)

什么可能导致此类错误?

c# debian .net-core

6
推荐指数
1
解决办法
4935
查看次数

标签 统计

.net-core ×1

c# ×1

debian ×1