我正在尝试发布我的 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
在项目的源目录中使用命令获得的相同的输出。
有任何想法吗?