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

加载C#编译DLL至Matlab时System.Runtime加载失败求助

解决Matlab加载.NET 7类库DLL时缺失System.Runtime的问题

编译层面调整

  • 优先切换到.NET Framework目标框架:将项目目标框架改为.NET Framework 4.8(或Matlab支持的更高版本,可通过Matlab的version -modules命令查看兼容版本)。.NET Framework的核心依赖是全局注册的,Matlab加载时不会出现缺失问题。修改方式:右键项目→属性→应用→目标框架,选择对应的.NET Framework版本。
  • 若必须使用.NET 7,发布为自包含部署包:
    1. 右键项目→发布,选择文件夹发布目标。
    2. 在发布设置中,将部署模式设为「自包含」,目标运行时选择与Matlab位数匹配的版本(如win-x64)。
    3. 发布后,将输出目录下的所有文件(包括主DLL、依赖库及runtime文件夹)复制到Matlab可访问的路径下,再尝试加载。
  • 清理不必要的NuGet依赖:移除项目中手动添加的System.Runtime NuGet包,.NET 7中System.Runtime属于框架核心组件,使用框架引用即可。可检查项目文件(.csproj),确保只有<FrameworkReference Include="Microsoft.NETCore.App" />,无<PackageReference Include="System.Runtime" />。

运行时/Matlab配置优化

  • 确认Matlab的.NET兼容性:在Matlab命令行输入version -modules,查看支持的.NET版本。若Matlab版本过旧不支持.NET 7,需升级Matlab至R2022a及以上版本,或切换到兼容的.NET Framework。
  • 添加Matlab绑定重定向配置:
    在Matlab安装目录的根文件夹(或你的DLL所在目录)创建matlab.exe.config文件,写入以下内容(替换路径中的实际.NET 7运行时版本):
    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
            <codeBase version="7.0.0.0" href="C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.15\System.Runtime.dll" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  • 确保依赖文件路径正确:将.NET 7运行时目录下的System.Runtime.dll及相关依赖(如System.Private.CoreLib.dll)复制到DLL所在目录,或通过配置文件的codeBase指定绝对路径。

验证步骤

  • 执行dotnet --list-runtimes确认.NET 7运行时已安装,且位数与Matlab一致(64位)。
  • 用ILSpy检查DLL的依赖项:若为自包含部署,DLL应指向本地的依赖文件而非全局框架;若使用.NET Framework,依赖应显示为.NET Framework的核心组件。
  • 在Matlab中执行NET.addAssembly('完整的DLL路径'),确保路径无拼写错误,且文件权限正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:43:33