我将尝试使用 .NET Core 编译和运行第一个跨平台应用程序,以迁移 C# 应用程序。我正在 Debian stretch 9.3 上进行尝试。
我已经运行了以下两个命令:
我针对这两个文件夹做了备份(bin\Release\netcoreapp2.0\linux-x64和bin\Release\netcoreapp2.0\debian-x64),使用SFTP工具将它们传输到我的Linux服务器。在Linux系统中,我通过cd命令进入相应的文件夹,并运行 .\program 命令。 当我尝试使用特定于Debian或通用Linux的编译代码时,出现以下错误:
我觉得我可能在我的csproj文件中做错了什么,但是我似乎无法弄清楚我做错了什么。
这是我的.csproj文件。
我感激大家能提供任何见解。
我已经运行了以下两个命令:
dotnet build -r debian-x64
dotnet publish -c release -r debian-x64
dotnet build -r linux-x64
dotnet publish -c release -r linux-x64
我针对这两个文件夹做了备份(bin\Release\netcoreapp2.0\linux-x64和bin\Release\netcoreapp2.0\debian-x64),使用SFTP工具将它们传输到我的Linux服务器。在Linux系统中,我通过cd命令进入相应的文件夹,并运行 .\program 命令。 当我尝试使用特定于Debian或通用Linux的编译代码时,出现以下错误:
Error:
An assembly specified in the application dependencies manifest (nfz_core.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'
我觉得我可能在我的csproj文件中做错了什么,但是我似乎无法弄清楚我做错了什么。
这是我的.csproj文件。
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>win10-x64;debian-x64;linux-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>
我感激大家能提供任何见解。
bin\Release\netcoreapp2.0
文件夹复制到Linux,并使用dotnet program.dll
命令运行您的应用程序。另外请参阅此问题,可能相关:https://github.com/dotnet/cli/issues/7543 - Soontsbin\Release\netcoreapp2.0\linux-x64\publish
。这是dotnet publish
命令的输出目录。 - omajid