Несколько версий .NET CLR, запущенных одновременно - PullRequest
2 голосов
/ 11 марта 2009

Допустим, у меня есть пользовательское приложение .NET (.exe), работающее под Windows, которое было скомпилировано в .NET Framework версии 3.0 (VS2008). Если это приложение загружает другую сборку .NET (.dll), скомпилированную на другом компьютере с использованием .NET Framework версии 2.0 (VS2005), будет ли загруженная сборка использовать существующую среду выполнения 3.0 (которая будет работать в режиме обратной совместимости)? Или среда выполнения .NET Framework 2.0 загрузится в пространство процессов системы, и теперь у нас есть две среды выполнения .NET, работающие одновременно?

Утверждение: это не использует многоцелевой таргетинг VS2008.

Ответы [ 3 ]

7 голосов
/ 11 марта 2009

.NET 3.0 CLR отсутствует. .NET 3.0 и 3.5 оба используют .NET 2.0 CLR.

Конечно, если ваше приложение .NET 3.0 использует функции .NET 3.0, необходимо установить .NET 3.0.

1 голос
/ 11 марта 2009

версии среды выполнения .NET обычно обратно совместимы, поэтому среда исполнения 3.0 будет содержать сборку 2.0 (не говоря уже о том, что версия 3.0 в основном такая же, как версия 2.0). В любом случае две версии CLR не могут быть загружены в один и тот же процесс.

1 голос
/ 11 марта 2009

Если он находится в том же пространстве процесса, как вы обрисовали, он будет работать под 3.0. Если вы хотите, чтобы два разных CLR ускорялись, вам придется создать границу службы (здесь отлично работает веб-служба или WCF, а не WCF для 2.0) и вызвать службу из другого приложения.

...