C# le module a été prévu pour contenir manifeste d'assembly
Salut, je suis nouveau sur le C# du monde. J'ai du l'utiliser en raison d'une dépendance à xceedzip.dll données compressées à venir par le biais d'un flux de multidiffusion.
Après le piratage ensemble du code pour la réception de la nourrir, je suis confronté à un obstacle, en invoquant cette dll.
Ce que je comprends-je besoin pour utiliser le Système.La réflexion" et d'appeler la dll.
Actuellement mon code source et la dll résider dans le même répertoire. Le code compile correctement.
Assembly ass = Assembly.Load("XceedZip");
- Je obtenir le Système.BadImageFormatException au cours de l'exécution:
Impossible de charger le fichier ou l'assembly "XceedZip" ou l'un de ses avec des dépendances. Le module a été prévu pour contenir un manifeste d'assembly.
S'il vous plaît aider, Merci
#
bien merci pour toutes vos réponses, j'ai une version de travail de la dll suite à l'tlbimp de commande chargé dans mon environnement. je suis confronté à des ennuis avec la Décompresser signature de la méthode. J'ai besoin de fournir une "réf objet" et un "objet" à la source (comprimé) et de destination (non compressé) des objets. J'ai essayé de chargement des tableaux d'octets dans ces positions, mais il me jette un les arguments non valides erreur. Aide sur "ref" et "objet" apprécié ...
problème résolu, merci à tous
xceed .net des versions spécifiques, utilisez-vous la .la version net de compression? xceed.com/pages/TopMenu/Products/...
je suis l'aide de la version 4.2
Le produit de la société page montre clairement qu'il est un composant COM. Ce qui signifie que vous ne pouvez pas utiliser de l'Assemblée.Load(). Utilisation tlbimp.exe pour générer une bibliothèque d'interopérabilité.
juste parcouru à travers interop, je pense que cela pourrait résoudre le problème .. je croise les doigts
OriginalL'auteur Aditya Sihag | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que cette DLL n'est pas géré de l'assemblée, mais qui contient du code natif. Le
Assembly.Load
doit être utilisé uniquement avec la gestion des assemblées. Si vous avez besoin d'invoquer des fonctions de code non managé vous pouvez utiliser P/Invoke. Le processus implique la définition d'un wrapper géré pour le non géré la fonction que vous souhaitez appeler.Par exemple, si vous voulez invoquer le MessageBox fonction native (en fait, vous n'aurez jamais besoin de le faire, car il y a déjà un équivalent géré, mais il devrait être bon pour les besoins de cette démonstration), vous pourriez écrire un wrapper:
et puis l'appeler:
Vous aurez à faire la même chose avec la fonction non managée qui est contenue à l'intérieur de la DLL. Vous devrez consulter la documentation pour voir l'exacte non géré signature qui vous aidera à définir le wrapper géré.
Je retire ce que. J'ai trouvé un non géré "XceedZip.dll" dans mon Snagit répertoire...je n'ai PAS trouver cette même DLL dans le Xceed Zip pour .NET v5.1 télécharger (essai), cependant.
si vous "modifier" de votre réponse, je vais upvote vous. Ses verrouillé pour moi jusqu'à ce que vous modifiez :\
réponse d'édition.
OriginalL'auteur Darin Dimitrov
Essayez de nettoyer la solution puis de construire à nouveau. Ce travail parfaitement bien pour moi.
OriginalL'auteur Tran Pham
Non, vous ne le font pas. Vous pouvez ajouter une référence à la DLL dans votre projet (car il géré assemblée), puis utiliser les classes et leurs méthodes qui sont dans la DLL.
Vous aurez reçu de la documentation sur les classes et les méthodes à utiliser et les paramètres qu'ils attendent.
je ne voudrais pas payer € 640 pour la première année et 320 euros pour chaque année suivante pour un simple ZIP de la bibliothèque, mais c'est un peu hors-sujet peut-être.
Particulièrement car il y a de très bonnes open source zip solutions.
OriginalL'auteur CodeCaster