1

我想在 Matlab Builder NE 中编译一些 Matlab 代码。
在这段代码中,我想调用.NET程序集,使用Matlab内置的能力来使用.NET组件: http: //www.mathworks.com/help/techdoc/matlab_external/brpb58s-1.html
过程是这样的:

  1. C#调用Matlab编译的.NET DLL
  2. MCR 使用 .NET 程序集来做某事(如上所述)
  3. MCR 将答案返回给 C#

这是一个正在编译为 .NET 组件的 Matlab 代码示例,目标为 .NET4

function ver = GetVersion()
    NET.addAssembly('System');
    ver = char(System.Environment.Version.ToString())};
end

但是,当编译这个简单的代码时,通过查看ver,我意识到它使用 .NET 2 而不是 .NET 4。

当我直接从 Matlab 使用它时,我得到了版本 4。
如何控制已编译 DLL 中的 .NET 运行时版本?

4

1 回答 1

1

在同一台计算机上?命令“mcc”在目标机器上创建一个最新支持的版本。您可以选择一个版本。

刚才我用我的电脑测试了一下,用户mcc设置.Net 2.0的版本为编译器

mcc -W 'dotnet:TestVersion,Version,2.0,private' -d 'C:\Users\HW-WIN7-TEMP\Documents\MATLAB\TestVersion\src' -T 'link:lib' -v 'class{Version:C:\Users\HW-WIN7-TEMP\Documents\MATLAB\GetVersion.m}'

我使用目标版本 3.5 来运行我的 C# 程序。得到相同的结果。

版本 = GetVersion() 版本 = 2.0.50727.5448

于 2011-12-30T09:29:18.027 回答