.NET6 Blazor WebAssembly项目引用外部程序集构建报错如何解决?
这个错误是Blazor WebAssembly构建阶段无法正确识别并打包你手动引用的外部dll文件导致的,你使用的.NET 6 RC预览版对非Nuget、非项目引用的本地程序集处理存在兼容性缺陷,可按以下方案尝试解决:
前置检查
首先确认ClassLibrary1.dll的编译目标为.NET Standard 2.1、.NET 5或.NET 6,Blazor WebAssembly不支持运行.NET Framework编译的程序集,确认兼容后再执行后续操作。
可行解决方案
- 方案1:调整外部dll的引用配置
打开你的项目.csproj文件,将现有ClassLibrary1的引用节点替换为以下内容:
保存配置后清理项目,重新生成即可。<ItemGroup> <Reference Include="ClassLibrary1"> <HintPath>Lib\ClassLibrary1.dll</HintPath> <Private>true</Private> <CopyLocal>true</CopyLocal> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Reference> </ItemGroup> - 方案2:手动指定打包规则
若方案1不生效,在项目文件的PropertyGroup节点下新增2条配置:
同时在项目的<PropertyGroup> <!-- 原有配置不需要修改,新增以下内容 --> <AllowedReferenceRelatedFileExtensions>.dll</AllowedReferenceRelatedFileExtensions> <BlazorWebAssemblyEnableDebugging>true</BlazorWebAssemblyEnableDebugging> </PropertyGroup>wwwroot目录下新建_framework文件夹,将Lib目录下的ClassLibrary1.dll复制到该文件夹内,再重新生成项目。 - 方案3(推荐):改用项目引用
将ClassLibrary1的项目文件添加到你的解决方案中,删除原有dll引用,改为项目引用。Blazor WebAssembly对项目引用的适配更完善,不会出现路径识别错误的问题。
内容的提问来源于stack exchange,提问作者akz
相关产品推荐
相关产品推荐

