Как я могу контролировать версию среды выполнения .NET, которая используется в скомпилированных компонентах .NET? - PullRequest
1 голос
/ 29 декабря 2011

Я хочу скомпилировать некоторый код Matlab в Matlab Builder NE.
В этом коде я хочу вызывать сборки .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 #

Вот пример кода Matlab, который компилируется в компонент .NET с целевым .NET4

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

Однако, когда этот простой код компилируется, беретсяпосмотрите на ver , я понимаю, что он использует .NET 2 вместо .NET 4.

Когда я использую его непосредственно из Matlab, я получаю версию 4.
Как я могууправлять версией среды выполнения .NET в скомпилированных DLL?

1 Ответ

1 голос
/ 30 декабря 2011

на том же компьютере? Команда «mcc» создает версию последней поддерживаемой версии на целевом компьютере. Вы можете выбрать версию.

Только что у меня есть тест с моим компьютером, User 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...