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

.NET 6 WPF引用MWArray.dll实例化MATLAB编译DLL时抛出异常

解决.NET 6 WPF中引用MATLAB编译DLL的TypeLoadException问题

问题核心

报错根源是.NET 6已移除.NET Framework专属的System.Web程序集,而MATLAB R2022b的MWArray组件依赖其中的System.Web.UI.WebResourceAttribute类型。同时MATLAB R2022b的Library Compiler仅官方支持到.NET 5,直接在.NET 6环境中调用会触发依赖缺失异常。

可行解决方案

1. 降级项目至.NET 5

利用MATLAB R2022b对.NET 5的原生支持,规避版本兼容问题:

  • 右键项目 → 属性 → 应用 → 目标框架选择.NET 5 (Windows)
  • 重新引用C:\Program Files\MATLAB\R2022b\toolbox\dotnetbuilder\bin\win64\netstandard2.0\MWArray.dll
  • 重新编译MATLAB库时勾选.NET 5.0选项

2. 升级MATLAB至R2023a或更高版本

MathWorks在MATLAB R2023a中正式添加.NET 6支持,升级后:

  • 使用新版本Library Compiler编译针对.NET 6的DLL
  • 引用对应版本路径下的MWArray.dll
  • 无需额外配置即可在.NET 6 WPF中正常调用

3. 配置.NET 6项目的兼容性模式

若无法降级或升级,可尝试通过项目配置启用部分.NET Framework兼容行为:
编辑项目的.csproj文件,添加兼容性配置:

<PropertyGroup>
  <TargetFramework>net6.0-windows</TargetFramework>
  <UseWPF>true</UseWPF>
  <EnableNETFrameworkCompatibility>true</EnableNETFrameworkCompatibility>
</PropertyGroup>

同时安装兼容NuGet包(仅作尝试,部分类型可能仍无法适配):

Install-Package System.Web.HttpUtility -Version 4.3.0

4. 确认MWArray.dll版本正确性

确保引用的是netstandard2.0版本的MWArray.dll,避免混用.NET Framework 4.x版本的组件,防止依赖冲突。


内容的提问来源于stack exchange,提问作者Charles Roscoe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:25:17