0

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

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

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

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

现在问题来了:一旦我尝试执行 .exe 文件,我就会得到一个未处理的期望。

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

我用谷歌搜索并看到了一些描述发布过程的结果,这些结果在谈论project.json我没有的文件。人们还描述该文件将使用给定的 dotnet-command 创建。对我来说,它永远不会使用该命令创建 - 要设置任何其他标志吗?

这是我的 .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>

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

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

有任何想法吗?

4

0 回答 0