You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WASM共享项目加外部DLL依赖,部署IIS触发异常原因?

针对Blazor WASM部署IIS后TypeLoadException的解决方案

1. 统一Shared项目与Client项目的运行时配置

  • 右键Shared项目 → 属性 → 生成,将目标运行时设置为browser-wasm,平台目标设为Any CPU,确保和Client项目的运行时完全匹配(Blazor WASM仅支持浏览器WASM环境,不兼容桌面/服务器运行时编译的DLL)。
  • 发布Shared项目时,勾选「生成依赖项的发布输出」,保证外部DLL被正确打包。

2. 确认Client项目对Shared的引用设置

  • 在Client项目的引用列表中找到Shared项目,右键→属性,将复制本地设为True,确保发布时Shared项目的所有输出(包括外部DLL)被复制到Client的发布目录。
  • 检查Client项目的.csproj文件,确认引用配置正确,示例:
    <ProjectReference Include="..\TestApp.Shared\TestApp.Shared.csproj">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </ProjectReference>
    

3. 验证IIS部署文件完整性

  • 发布后查看Client项目的wwwroot\_framework\bin目录,确认TestApp.Shared.dll和外部DLL都存在于此。
  • 若文件缺失,手动复制外部DLL到该目录,随后重启IIS站点。

4. 清理重建并重新发布

  • 执行解决方案清理:右键解决方案→清理解决方案
  • 全量重建项目:右键解决方案→生成解决方案(确保无编译错误)
  • 重新发布Client项目,勾选「删除目标位置的现有文件」,避免旧文件冲突。

5. 检查外部DLL兼容性

  • 确认外部DLL是基于.NET 6编译的纯托管程序集,无.NET Framework专属API依赖(Blazor WASM不支持.NET Framework)。
  • 若外部DLL包含原生代码(如C++库),需替换为Blazor WASM兼容的纯托管版本。

内容的提问来源于stack exchange,提问作者Harsh Bhadoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:38:15