我正在使用Visual Studio 2015.并创建.net核心控制台应用程序.在调试文件夹中编译后,我有我的项目DLL.如果我想在另一台计算机上运行它,我必须在其上安装dotnet,然后在cmd dotnet myApp.dll中写入.但是我需要运行我的应用程序而不需要任何安装.
我已经读过,我必须发布我的应用程序.我用命令dotnet publish -c Release来做.现在在文件夹发布中,我使用myApp.dll和其他dll文件和文件夹运行时为不同的系统发布新文件夹.例如在Ubuntu.16.04-x64文件夹中,我有文件System.Security.Cryptography.Native.OpenSsl.so.但是如何在没有任何新安装的dotnet或其他东西的情况下运行我的应用程序?
我正在尝试在 ubuntu 16.04-x64 上运行我的第一个 .net core 2.0 控制台应用程序。我按照以下步骤为 ubuntu 发布我的应用程序:
dotnet publish -c release -r ubuntu.16.04-x64
Run Code Online (Sandbox Code Playgroud)
并通过更改我的 .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>
Run Code Online (Sandbox Code Playgroud)
然后使用发布配置文件发布它。
我按照 Microsoft 的说明在 ubuntu 上安装 .net core。当我尝试运行控制台应用程序的 .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 …Run Code Online (Sandbox Code Playgroud) 我在Visual Studio中创建了一个.Net核心C#控制台应用程序,并使用以下步骤在Linux上进行测试.
....\bin\Release\netcoreapp2.1\publish.chmod 777 myApp.dll./myApp.dll但是,执行应用程序会显示错误
-bash:./ myApp.dll:无法执行二进制文件