MMC .Net Runtime Version - PullRequest
0 голосов
/ 13 июля 2009

Я в настоящее время разрабатываю оснастку MMC, но столкнулся с большой трудностью - это сделано с использованием .Net 4.0 framework; и MMC загружает предыдущую версию среды выполнения.

Использование более старой версии среды выполнения на самом деле не вариант, так как весь проект написан для 4.0 (до сих пор 5000 LOC); это просто интерфейс управления (кажется, что: P).

Я проверил ключ реестра MMC, и там есть версия v4.0.20506. Я не могу найти другую конфигурацию взаимодействия MMC .Net.

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 22 июля 2009

Прочитав этот вопрос немного подробнее, я могу подтвердить, что хост-процесс должен явно поддерживать несколько сред выполнения через некоторые новые API в .NET 4.0.

Я сомневаюсь, что MMC (даже в Windows 7) поддерживает эти API, поскольку .NET 4.0 также находится в бета-версии. В маловероятном случае, если это произойдет, вы можете заставить его использовать его с помощью элемента supportRuntime в вашей конфигурации:

<configuration>
   <startup>
      <supportedRuntime version="v4.0.20506"/>
   </startup>
</configuration>

В противном случае, боюсь, вам не повезло. Тогда ваш единственный выбор - изменить проект на целевой .NET 2.0.

В качестве альтернативы, вы можете написать неуправляемую оснастку MMC, которая содержит собственную среду выполнения и загружает управляемую. Насколько вам нужны эти возможности .NET 4.0?

1 голос
/ 28 октября 2012

Microsoft с тех пор опубликовала эту статью о версиях MMC и CLR http://msdn.microsoft.com/en-us/library/windows/desktop/gg983006(v=vs.85).aspx По сути, вы создаете переменную магического окружения, которая направляет запуск CLR в файл конфигурации, специфичный для вашей оснастки MMC.

Лично я думаю, что было бы легче всем, если бы они просто изменили MMC.EXE на CLR 4, но по какой-то причине решили не идти в этом направлении.

1 голос
/ 25 мая 2012

... или вы можете заставить MMC использовать v4.0 со следующей переменной среды:

set COMPLUS_Version=v4.0.30319
1 голос
/ 22 июля 2009
...