我正在尝试在ubuntu 16.04-x64上运行我的第一个.net核心2.0控制台应用程序。 我按照步骤发布了我的ubuntu应用程序:
dotnet publish -c release -r ubuntu.16.04-x64
并通过更改我的.csproj文件从Visual Studio中尝试了它:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>ubuntu.16.04-x64</RuntimeIdentifiers>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="sharpadbclient" Version="2.1.0" />
<PackageReference Include="System.IO.Ports" Version="4.4.0" />
</ItemGroup>
</Project>
然后使用发布配置文件发布它。
我按照Microsoft的指示install .net core on ubuntu。 当我试图运行我的控制台应用程序的.dll文件时,我将已发布的输出复制到运行ubuntu ans的PC上我收到此错误:
Unhandled Exception: System.IO.FileLoadException:
Could not load file or assembly
'System.Console, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
at LinuxVersion.Program.InitializeComponent()
at LinuxVersion.Program.Main(String[] args)
Aborted (core dumped)
当我跑步dotnet restore
时,我收到一条消息:
MSBUILD : error MSB1003: Specify a project or solution file.
The current working directory does not contain a project or solution file.
我在这个过程中错过了一步吗?
答案 0 :(得分:2)
嗯,事实证明,使用Visual Studio发布配置文件(右键单击项目并选择&#34;发布&#34;)和使用命令行发布应用程序之间存在差异。
当我使用Visual Studio发布配置文件时出现此错误,然后我切换到使用命令行,如下所示:cd /home/MyApp/publish
但要运行它,我进入了输出的发布文件夹:dotnet MyAppName.dll
,然后使用POST /api/hospitals
{
//...
}
运行应用程序。
这解决了我。