Question

Je développe actuellement un composant logiciel enfichable MMC, mais ont frappé un grand accroc - il est fait en utilisant le framework .Net 4.0; et MMC charge une version précédente de l'exécution.

En utilisant une ancienne version du moteur d'exécution n'est pas vraiment une option, comme l'ensemble du projet est écrit pour la version 4.0 (jusqu'à 5000 LOC); ceci est simplement un front-end de gestion (de fantaisie que: P).

J'ai vérifié la clé de Registre MMC et il a la version v4.0.20506 là. Je ne peux trouver aucune autre configuration Interop .Net MMC n'importe où.

Toutes les idées?

Était-ce utile?

La solution

Après avoir lu sur la question un peu plus loin, je peux confirmer que le processus hôte doit prendre en charge explicitement plusieurs runtimes via nouvelles API dans .NET 4.0.

Je doute MMC (même dans Windows 7) prend en charge ces API, depuis .NET 4.0 est également en version bêta. Dans la chance peu probable qu'il le fait, vous pouvez le forcer à l'utiliser en utilisant l'élément supportedRuntime dans votre configuration:

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

A défaut, cependant, je crains que vous êtes hors de la chance. Votre seul choix sera alors de changer votre projet cible .NET 2.0.

Vous pouvez écrire un composant logiciel enfichable MMC non géré qui héberge son propre moteur d'exécution et charge votre réussi un. À quel point avez-vous besoin de ces fonctionnalités .NET 4.0?

Autres conseils

... ou vous pouvez forcer MMC à utiliser v4.0 avec la variable d'environnement suivant:

set COMPLUS_Version=v4.0.30319

Microsoft a depuis affiché cet article concernant les versions MMC et CLR http://msdn.microsoft.com/en-us/library/windows/desktop/gg983006 (v = vs.85) .aspx Fondamentalement, vous créez une variable d'environnement magique qui dirige le démarrage du CLR dans un fichier de configuration qui est spécifique à votre composant logiciel enfichable MMC.

Personnellement, je pense qu'il aurait fait la vie de chacun plus facile si elles auraient MMC.EXE simplement changé d'utiliser CLR 4 mais pour une raison quelconque, ils ont décidé de ne pas aller dans cette direction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top