构建引用标准.NET 6类库的.NET MAUI应用:发布报错求助
解决.NET MAUI发布时找不到类库元数据文件的问题
问题背景
我有一个跨项目复用的标准.NET 6类库,将其加入.NET MAUI解决方案并添加项目引用后,调试运行正常,但发布时提示找不到元数据文件..\bin\Release\net6.0\win10-x64\myclasslibrary.dll,实际该类库生成在..\bin\Release\net6.0\win-x64\myclasslibrary.dll。尝试给类库添加net6-windows框架后,仍只生成win-x64目录,未生成win10-x64目录。
以下是两种可行的解决方法:
方案一:让MAUI发布时指向win-x64目录
修改MAUI项目的.csproj文件,在项目引用中指定类库使用的RuntimeIdentifier,确保MAUI发布时去win-x64目录查找dll:
<ItemGroup> <ProjectReference Include="..\MyMAUIApp\ClassLibrary.csproj"> <AdditionalProperties>RuntimeIdentifier=win-x64</AdditionalProperties> </ProjectReference> </ItemGroup>
或者在MAUI项目的<PropertyGroup>中添加搜索路径,让构建系统能找到类库的输出:
<PropertyGroup> <!-- 保留原有属性,新增以下配置 --> <ResolveAssemblySearchPaths>$(ResolveAssemblySearchPaths);../MyMAUIApp/bin/Release/net6.0/win-x64/</ResolveAssemblySearchPaths> </PropertyGroup>
方案二:让类库同时生成win10-x64目录
修改类库的.csproj文件,将win10-x64加入RuntimeIdentifiers列表,这样类库发布时会同时生成win-x64和win10-x64两个目录的输出文件:
<PropertyGroup> <RuntimeIdentifiers>win-x64;win10-x64;linux-x64;</RuntimeIdentifiers> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <TargetFramework>net6.0</TargetFramework> </PropertyGroup>
可选优化:生成可移植类库
如果不需要针对特定RuntimeIdentifier编译,可以移除类库的RuntimeIdentifiers属性,让类库生成可移植版本,输出直接放在net6.0根目录下,MAUI发布时无需指定RID即可找到:
<PropertyGroup> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <TargetFramework>net6.0</TargetFramework> <!-- 移除RuntimeIdentifiers配置 --> </PropertyGroup>
内容的提问来源于stack exchange,提问作者user4779
相关产品推荐
相关产品推荐

