web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'MyAssembly.XmlSerializers

J'ai pris une image mémoire de IIS et lors de l'analyse, j'ai trouvé l'erreur mentionnant "Impossible de charger le fichier ou l'assembly MyAssemblyName.XmlSerializers" . Dans mon code, j'utilise la classe XmlSerializer pour sérialiser et désérialiser le contenu XML d'un fichier XML à un objet personnalisé. Lorsque le projet est généré, il crée uniquement les fichiers MyAssembly.dll et MyAssembly.pdb, mais pas le fichier MyAssembly.XmlSerializers.dll. Est-ce que quelqu'un sait comment activer mon projet pour créer un fichier xmlserializers.dll?

Remarque: dans l'onglet de construction du projet, 'Générer l'assemblage de sérialisation est défini sur Auto.

Merci.

24
sanjeev40084

Il y a déjà une réponse ici . Apparemment, ceci est un "comportement attendu" que MS ne va pas réparer.

Le premier commentaire a une solution de contournement:

Un des moyens possibles de résoudre ce problème est de cocher l'option "Juste mon code" dans Outils -> Options -> Débogage -> Options générales.

29
Bok McDonagh

Vous pouvez également générer cet assemblage à l'aide de Sgen.exe  

Pour moi, il se trouve dans: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools

1. open cmd command
2. cd yourProjectPath
3. sgen Project.dll

La commande suivante crée un assembly nommé Project.XmlSerializers.dll pour sérialiser tous les types contenus dans l'assembly nommé Project.dll.

0
LIDEN

Lorsque vous créez MyAssembly.XmlSerializers.dll, assurez-vous que sa version .NET est identique à celle de votre projet. Vous pouvez vérifier cela en utilisant un logiciel comme dotPeek ou ILSpy. J'avais un problème similaire lors de la création de xmlserializers pour ma solution .NET 3.5 à partir de visual studio, générer une sérialisation. Assembly était défini pour le projet, mais Sgen.exe était utilisé à partir de C:\Program Files (x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6.1 Tools et doit provenir de C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\Bin. Si votre solution est dans .NET 3.5, MyAssembly.XmlSerializers.dll doit également l'être dans .NET 3.5.

0
Sashus