外部可执行文件未启动,并出现错误“目标进程已退出,但未引发 CoreCLR 启动事件”

问题描述 投票:0回答:2

我创建了一个类库项目并配置了属性部分调试以启动位于构建的输出目录中的 exe (the.exe)(如图所示)。

只要我们有一个预构建事件从构建的输出目录中的一个目录复制 exe 和所有相关文件,它就可以工作。不幸的是,这很不方便,而且我们无法跟踪使用的是哪个版本的 exe。

因此,我创建了一个版本化的 nuget 包,将所有文件放置在输出目录中。我确认所有必需的文件(我知道的)都在输出目录中。由于我使用 CLI 手动创建了 nuget 包,我可以确认它们是完全相同的文件。

但是当我尝试从 Visual Studio 2019 启动应用程序时,我在调试输出中收到以下错误:

The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program '[16616] the.exe' has exited with code -2147450749 (0x80008083).

实际上两者(.exe 和类库)都是 .NET 5。

通过 Git 更改比较两个设置的更改,除了添加 nuget 和删除预构建事件之外,没有任何线索。

那么有什么线索可能是差异/问题以及如何让可执行文件运行吗?我可能错过了什么吗?

enter image description here

c# visual-studio-2019 .net-5
2个回答
2
投票

好吧,当您说“我确认(我知道的)所有必需的文件都在输出目录中”时,最好检查两次。

问题是并非所有文件都进入输出目录。

在我的例子中,只有 the.exe 和 the.dll 被放入输出目录中。当我再次检查并确保添加了 .runtimeconfig.json (缺少)后,它再次运行并且异常消失了。虽然我不确定是否有比分发.runtimeconfig.json更好的方法。


0
投票

在 VSCode .Net Core 8 (Mac) 上遇到此错误。 由于该项目从 Windows 计算机转移到我的 Mac 上,因此

RuntimeIndetifier
文件中的
csproj
win-x64
,但是它导致“目标进程在未引发 CoreCLR 启动事件的情况下退出。

刚刚从配置中删除了 RuntimeIndetifier 行并清除了错误。

<PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <PublishSingleFile>false</PublishSingleFile>
    <SelfContained>true</SelfContained>
    <!-- <RuntimeIdentifier>win-x64</RuntimeIdentifier> -->
  </PropertyGroup>
© www.soinside.com 2019 - 2024. All rights reserved.