문제

현재 MMC 스냅인을 개발 중이지만 큰 걸림돌을 쳤습니다. .NET 4.0 프레임 워크를 사용하여 완료되었습니다. MMC는 이전 버전의 런타임을로드하고 있습니다.

전체 프로젝트가 4.0 (지금까지 5000 LOC)로 작성되었으므로 런타임의 이전 버전을 사용하는 것은 실제로 옵션이 아닙니다. 이것은 단지 관리 프론트 엔드입니다 (Fancy that : P).

MMC 레지스트리 키를 확인했으며 버전 v4.0.20506이 있습니다. 다른 MMC .NET Interop 구성을 어디서나 찾을 수 없습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

문제를 조금 더 읽은 후 호스트 프로세스가 여러 런타임을 명시 적으로 지원해야 함을 확인할 수 있습니다. 새로운 API .NET 4.0에서.

.NET 4.0도 베타이기 때문에 MMC (Windows 7에서도)가 이러한 API를 지원하는 것을 의심합니다. 가능성이 없어서 구성에서 SupportEdRuntime 요소를 사용하여 사용하도록 강요 할 수 있습니다.

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

그러나 실패하면, 나는 당신이 운이 없다는 것을 두려워합니다. 그렇다면 프로젝트를 대상 .NET 2.0으로 변경하는 것입니다.

또는 자체 런타임을 호스팅하고 관리되는 사람을로드하는 관리되지 않는 MMC 스냅인을 작성할 수 있습니다. .NET 4.0 기능이 얼마나 나쁘게 필요합니까?

다른 팁

... 또는 MMC가 다음 환경 변수와 함께 v4.0을 사용하도록 강요 할 수 있습니다.

set COMPLUS_Version=v4.0.30319

Microsoft는 MMC 및 CLR 버전에 관한이 기사를 게시했습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/gg983006(v=vs.85).aspx기본적으로 CLR 시작을 MMC 스냅인에 특정한 구성 파일로 지시하는 마법 환경 변수를 만듭니다.

개인적으로, 나는 그들이 CLR 4를 사용하도록 mmc.exe를 단순히 변경했다면 모든 사람의 삶을 더 쉽게 만들었을 것이라고 생각하지만 어떤 이유로 그들은 그 방향을 가지 않기로 결정했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top