Как обеспечить выполнение управляемого кода под .net 2.0 в процессе .net 4 (SxS) - PullRequest
0 голосов
/ 31 января 2012

В некоторых статьях упоминается "явный запуск sxs". Это действительно возможно? Я прочитал несколько статей на эту тему:
http://msdn.microsoft.com/en-us/magazine/ee819091.aspx
http://blogs.msdn.com/b/dotnet/archive/2009/06/03/in-process-side-by-side-part1.aspx
http://msdn.microsoft.com/en-us/library/ee518876.aspx

но все еще неясно, возможно ли принудительно выполнить часть управляемого кода в более старой версии .net из процесса .net 4.

Пока что похоже, что только COM-компонентам может потребоваться более старый .net, поэтому .net 4 clr автоматически начнет выполнение SxS. Может ли кто-то пролить свет на этот вопрос?

1 Ответ

1 голос
/ 31 января 2012

Используя сгенерированный компилятором хост CLR, нет, я не думаю, что вы можете сделать это.

Полагаю, вам придется самостоятельно разместить CLR и явно указать, какой CLR вы хотите загрузить при вызове CorBindToRuntimeEx. Таким образом, вы хотите загрузить один CLR, указав v2, а другой - v4.

Раньше вы вообще не могли этого сделать, это выглядело эффектно.

Вы не можете сказать: «О, я просто хочу, чтобы этот метод запускался в CLR v2». Ваш «фрагмент управляемого кода» будет находиться в другом домене приложений, поэтому вам придется установить связь между двумя доменами приложений, например удаленное взаимодействие.

...