2009-06-09 5 views
0

J'essaie d'exécuter une application 32 bits (construite en x86) sur une machine 64 bits. Je l'ai construit en tant que x86 car il utilise un objet com 32 bits. Jusqu'à ce que je l'ai fait, l'application ne pouvait pas charger le com. Maintenant, il charge le com, mais se plaint qu'il ne peut pas trouver l'assemblage microsoft.mshtml. Cet assembly est utilisé par l'une des dépendances (.net).L'application 32 bits ne trouve pas l'assemblage mshtml lors de l'exécution sur une machine 64 bits

Le message d'erreur est:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
Couldn't find File name: 'Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 

Je peux voir cette assemblée enregistrée à la fois sous CLSID et sous WOW3264NodeCLSID. Cependant, il n'est pas trouvé dans le répertoire WIndows \ Assembly.

J'ai essayé de copier la DLL à partir de l'ordinateur sur lequel j'ai construit l'application et de le placer dans le répertoire de l'application. Puis, quand j'ai essayé de lancer l'application, j'ai eu une erreur de sécurité à propos de la dénomination forte. J'ai googlé l'erreur et trouvé que l'assemblée devrait être ajoutée au GAC. J'ai essayé de le faire en faisant glisser la DLL dans \windows\assembly, mais cela n'a pas fonctionné non plus. Il m'a donné un message d'erreur à propos de private \ public key.

I a permis l'exploitation forestière et que la liaison est ce que je reçois:

=== état pré-bind informations ===

LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/DT/IEService/bin/Debug32bit/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : HTMLConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ec4c8772a0842ff. 

LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\DT\IEService\bin\Debug32bit\ServiceConsole.exe.Config 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Post-policy reference: Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: The same bind was seen before, and was failed with hr = 0x80070002. 

Que dois-je faire? Toute aide sera plus qu'appréciée.

Répondre

0

Exécutez fslogvw sur la machine pour capturer des informations supplémentaires sur l'échec de la liaison d'assemblage. Cela devrait aider à épuiser la cause.

+0

J'ai modifié mon message en ajoutant la journalisation de liaison que je reçois. Est-ce assez? –

+0

Le journal semble avoir démarré fuslogvw après l'exécution de l'application. Assurez-vous que vous l'avez en cours d'exécution et enregistrez toutes les liaisons. –

Questions connexes