如何在.NET MAUI项目中引用仅支持Windows的类库?
解决.NET MAUI项目引用Windows专属类库的损坏问题
问题根源
.NET MAUI是跨平台项目,默认同时针对Android、iOS、Windows等多个平台编译。而你创建的ClassLibrary1仅以net7.0-windows为目标框架,其他平台无法识别该类库,导致全局引用时出现损坏错误。
解决步骤
调整MAUI项目的引用范围
打开MauiApp1.csproj,将原有的ProjectReference修改为仅在Windows平台下生效的条件引用,避免其他平台加载不兼容的类库:<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'"> <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" /> </ItemGroup>隔离Windows专属代码
在MAUI项目中,所有调用ClassLibrary1(以及FlaUI)的代码必须用平台条件编译指令包裹,确保仅在Windows环境下执行:#if WINDOWS // 示例:初始化FlaUI自动化逻辑 using FlaUI.Core; using FlaUI.UIA3; var automation = new UIA3Automation(); // 后续FlaUI操作代码 #endif对齐目标框架版本
检查ClassLibrary1.csproj的目标框架版本,确保和MAUI项目的Windows目标版本一致。MAUI默认的Windows目标通常是net7.0-windows10.0.19041.0,所以类库的TargetFramework应设置为:<TargetFramework>net7.0-windows10.0.19041.0</TargetFramework>清理重建项目
先分别清理ClassLibrary1和MauiApp1项目,再重新生成解决方案,最后仅运行Windows平台的MAUI项目即可。
注意事项
FlaUI仅支持Windows系统,所有相关的UI自动化逻辑必须完全隔离在Windows平台专属代码中,不能在跨平台的通用代码里调用,否则会导致非Windows平台编译失败。
内容的提问来源于stack exchange,提问作者10101
相关产品推荐
相关产品推荐

