2009-12-20 4 views
1

je reçois l'exception suivante en montrant une forme:VB.Net erreur Visual Studio Lorsque Affichage formulaire

InvalidOperationException était non gérée

montage en mode mixte est construit contre la version 'v2.0.50727' de le runtime et ne peut pas être chargé dans le runtime 4.0 sans informations de configuration supplémentaires.

alt text http://img69.imageshack.us/img69/2599/captureya.png

ne sais pas vraiment pourquoi ce isnt travail. De l'aide?

+0

quelle est l'exception interne? –

+0

J'ai ajouté le message d'erreur sous forme de texte afin que votre question puisse être trouvée sur Google. –

Répondre

0

Je n'ai pas vu le code pour LoginForm. Mais je pense que vous avez besoin de mettre un drapeau app.config pour revenir à .NET 2.0 consolidations époque ...

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

Tout d'abord, ce qui est un ensemble de mode mixte? Un assembly en mode mixte est un assembly qui contient à la fois le code géré (CIL) et non géré (langage machine). Par conséquent, ils ne sont pas portables aux autres jeux d'instructions CPU , tout comme programmes C et C++ normaux et bibliothèques.

Ensuite, pourquoi les utiliser? Le but primaire pour les assemblages en mode mixte est en tant que "colle", par ex. utilise une classe de la bibliothèque C++ en tant que classe de base d'une classe gérée. Cela permet à la classe gérée d'étendre les méthodes non gérées, en autorisant le code managé à être polymorphe par rapport aux fonctions non gérées existantes. Ceci est extrêmement utile dans plusieurs contextes. Cependant, comme quelque chose comme celui-ci implique l'extension d'une classe C++, il faut que le compilateur savoir sur le compilateur C++ ABI (nom mutiler, table de fonction virtuelle génération et de placement, exception comportement), et donc efficace exige code natif. Si la base classe se trouve dans une .dll séparée, ce aura aussi besoin que le mode mixte liste d'assemblage du .dll natif en tant que dépendance , de sorte que la bibliothèque native est également chargé lorsque l'ensemble est chargé.

L'autre chose que le mode mixte ensembles support est la capacité à exporter nouvelles fonctions C afin que les autres programmes peuvent LoadLibrary() l'ensemble et GetProcAddress la exportée fonction C.

Ces deux capacités exigent que le chargeur de bibliothèque partagée pour le support de la plate-forme Portable Executable (PE) sous forme d'assemblages sont des fichiers PE .Si le chargeur de bibliothèque partagée prend en charge les fichiers PE, le chargeur peut faire en sorte que lorsque l'ensemble est chargé, toutes les bibliothèques dépendantes énumérés sont également chargés (cas 1), ou que applications natives sera en mesure de charger l'ensemble comme si elle était une DLL native et résoudre les points d'entrée DLL contre il.

Source

+0

Ok, où ça va? –

+0

Dans votre app.config .. Cela devrait faire partie de votre solution. –

+0

Merci mec! Cela fonctionne maintenant :) –

0

J'ai eu cette question, la réponse ci-dessus ont essayé et cela n'a pas fonctionné. Après beaucoup de lecture et d'essais et d'erreurs et ne trouvant rien qui fonctionne, j'ai remarqué que j'avais à la fois importé les dlls Mysql et les a ajoutés dans les propriétés. Après avoir supprimé les instructions d'importation, cela a fonctionné.

Je sais qu'il supprimait les instructions d'importation parce que j'ai testé entre chaque changement que j'ai essayé.

Espérons que cela aide quelqu'un.

Questions connexes