.NET 7应用通过dotnet命令启动失败,直接运行exe正常
问题:.NET 7.0指定平台目标后,dotnet命令启动失败
场景与当前配置
我有一个需在Windows和Linux运行的.NET 7.0小型应用,因要通过P/Invoke调用32位DLL,无法设置为可移植目标,因此配置平台目标为ARM32和x86:
<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net7.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <Platforms>ARM32;x86</Platforms> </PropertyGroup>
应用所有组件均采用此配置,在Windows机器上通过VS 2022或Rider启动可正常运行,但尝试通过dotnet命令启动bin目录下的构建输出或发布版本时失败。
发布配置

抛出异常
未处理的异常。System.IO.FileLoadException: 无法加载文件或程序集“EIS.Host, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。
EIS.Host是启动应用的项目名称,生成的可执行文件名为EIS.Host.exe。
已尝试的操作
我曾尝试不同配置,比如在csproj中添加:
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PlatformTarget>x86</PlatformTarget> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> <PlatformTarget>x86</PlatformTarget> </PropertyGroup>
之后切换为当前配置。我分别使用Rider和VS2022进行构建,尝试通过dotnet命令启动ARM32(WSL2环境)和x86(本地机器)的构建输出及发布版本,但均失败。
内容的提问来源于stack exchange,提问作者Granock
相关产品推荐
相关产品推荐

