如何控制正在编译的.NET组件中使用的.NET运行时版本?

时间:2011-12-29 15:18:01

标签: .net matlab .net-4.0 .net-2.0 matlab-deployment

我想在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#
  4. 的答案

    这是一个正在编译为.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运行时版本?

1 个答案:

答案 0 :(得分: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#程序。获得相同的结果。

  
    
      

ver = GetVersion()ver =       2.0.50727.5448