2009-10-27 3 views
0

Je suis confronté à la situation suivante: J'ai créé une application XBAP de confiance complète simple qui fait référence à un serveur COM C++ non géré (isolé). Après le déploiement, je m'attends à ce que l'application XBAP découvre la DLL du serveur COM qui est placée dans le même répertoire, mais ce n'est pas le cas. Je reçois l'erreur suivante:XBAP utilise un serveur COM C++ non géré, problème de déploiement côte à côte

Une exception a été émise par la cible d'une invocation. ---> System.Runtime.InteropServices.COMException (0x80040154): La récupération de la fabrique de classe COM pour le composant avec CLSID {970599E0-2673-11D3-A8A8-00105AA943DF} a échoué en raison de l'erreur suivante: 80040154. à Generation888.Generation888. simple (Int32 num1, Int32 num2)

J'ai vérifié que le dossier dans lequel le XBAP a été déployée contient la DLL et manifeste XBAP qui contient CLSID bon

Si je créé une application simple C# Windows Form et fait référence à la même COM dll, ça marche bien.

Ma question est de savoir si XBAP prend en charge le mécanisme Side-by-Side.

Merci

Répondre

1

je ne connais pas terriblement avec XBAPs donc ces quelques suggestions générales. Si votre XBAP est en fait lancé en tant qu'exécutable séparé puisqu'il est fulltrust (que dit taskmgr?), Essayez d'utiliser l'outil "sxstrace.exe" à partir d'une ligne de commande élevée sur Windows Vista ou version ultérieure pour déterminer si le manifeste XBAP est effectivement être interprété par le système. Il est possible que si vous avez d'abord essayé votre application sans manifeste ou modifié le manifeste, le système a mis en cache cette ancienne information et vous devrez effacer ce cache d'état manifeste en touchant l'horodatage du manifeste et de l'exécutable.

Il est également possible que votre fichier exécutable ait un manifeste incorporé, ce qui signifie que le manifeste externe est ignoré. Pour vérifier cela, ouvrez l'exécutable dans Visual Studio et vérifiez s'il contient une ressource RT_MANIFEST d'ID 1.

Questions connexes