如何以exe形式发布完整的自包含.NetCoreApp?

时间:2019-06-12 06:12:03

标签: c# publish self-contained

我正在尝试发布C#.NetCoreApp2.2控制台应用程序的可用exe文件。

我已经使用Visual Studio Code IDE用C#编写了一个小应用程序。我首先输入dotnet new console,然后在Visual Studio Code中打开该项目。我安装了一些第三方库,例如log4net和DocumentFormat.OpenXml。

我可以在Visual Studio Code中调试应用程序-没问题。我可以在项目源目录中运行dotnet run-没问题。我也可以毫无问题地运行dotnet publish -c Release -r win10-x64 --self-contained true

发布命令后,我在期望的子目录中获得了期望的.exe文件(以及许多其他文件?)。

现在出现问题: 尝试执行.exe文件后,我得到了无法处理的期望。

我确实引用了第三方库,但是据我了解,自包含选项应该注意这一点-是吗?

我在Google上搜索了一些结果,这些结果描述了有关project.json-我没有的文件的发布过程。人们还描述将使用给定的dotnet命令创建此文件。对我来说,它永远不会使用该命令创建-是否需要设置其他标志?

这是我的.csproj文件

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="log4net" Version="*" />
    <PackageReference Include="Nunit3TestAdapter" Version="3.13.0" />
    <PackageReference Include="NUnit" Version="3.12.0"/>
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="*" />
    <PackageReference Include="DocumentFormat.OpenXml" Version="2.8.1" />
    <PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0006" />
  </ItemGroup>
</Project>

版本号“ *”可能有问题吗?

我希望得到一个执行并显示与使用项目源目录中的命令dotnet run得到的输出相同的.exe文件(可能很大)。

有什么想法吗?

0 个答案:

没有答案