Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何控制编译后的.NET组件中使用的.NET运行时版本?_.net_Matlab_.net 4.0_.net 2.0_Matlab Deployment - Fatal编程技术网

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

如何控制编译后的.NET组件中使用的.NET运行时版本?,.net,matlab,.net-4.0,.net-2.0,matlab-deployment,.net,Matlab,.net 4.0,.net 2.0,Matlab Deployment,我想在MatlabBuilder NE中编译一些Matlab代码。 在这段代码中,我想调用.NET程序集,使用Matlab的内置功能来使用.NET组件: 过程是这样的: C#调用Matlab编译的.netdll MCR使用.NET程序集执行某些操作(如上所述) MCR将答案返回给C# 这是一个Matlab代码示例,正在编译为.NET组件,目标为.NET4 function ver = GetVersion() NET.addAssembly('System'); ver = ch

我想在MatlabBuilder NE中编译一些Matlab代码。
在这段代码中,我想调用.NET程序集,使用Matlab的内置功能来使用.NET组件:
过程是这样的:

  • C#调用Matlab编译的.netdll
  • MCR使用.NET程序集执行某些操作(如上所述)
  • MCR将答案返回给C#
  • 这是一个Matlab代码示例,正在编译为.NET组件,目标为.NET4

    function ver = GetVersion()
        NET.addAssembly('System');
        ver = char(System.Environment.Version.ToString())};
    end
    
    然而,当编译这个简单的代码时,通过查看ver,我意识到它使用的是.NET2而不是.NET4

    当我直接从Matlab使用它时,我得到了版本4。
    如何在同一台计算机上控制编译的DLL中的.NET运行时版本?

    ?命令“mcc”将生成目标计算机上支持的最新版本。您可以选择一个版本。 刚才我用我的计算机进行了一个测试,用户mcc将.Net 2.0的版本设置为complier

    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

    在同一台计算机上?命令“mcc”生成目标计算机上支持的最新版本。您可以选择一个版本。 刚才我用我的计算机进行了一个测试,用户mcc将.Net 2.0的版本设置为complier

    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


    我确实选择了.NET4作为目标。是的,它在同一台计算机上。谢谢你的回复。很抱歉,我的Matlab版本是R2009a,我不能再尝试了。我确实选择了。NET4作为目标。是的,它在同一台计算机上。谢谢你的回复。对不起,我的Matlab版本是R2009a,我不能再尝试了。