2016-11-23 7 views
-1

J'ai une gamme de projets C# qui ont compilé heureusement pour un certain nombre d'années. J'ai récemment essayé de référencer MSHTML sur une machine de build. Pour ce faire, j'ai récupéré les fichiers TLB de System32 et SysWOW64 et les ai référencés en utilisant un ComFileReference via 'tlbimp'.L'espace de noms de mshtml.tlb a inexplicablement changé de minuscule à majuscule

Maintenant, mon programme ne compilera pas, beaucoup d'erreurs de la forme Namespace 'mshtml' n'existe pas.

J'ai compris que l'espace de nom s'appelle maintenant MSHTML, quand et pourquoi a-t-il changé?

Existe-t-il un moyen correct de référencer cette DLL de sorte que l'espace de noms soit à nouveau en minuscules. Ceci est devenu un peu plus sérieux puisque le code que nous avons acheté d'ailleurs présente maintenant le problème sans avoir bricolé avec les fichiers du projet, et ça a été bon pour un certain nombre de versions pour environ 5 ans.

Je ne sais pas vraiment ce qui s'est passé. Merci d'avance pour toute idée.

Mark

Répondre

0

J'ai travaillé ce que je fait de mal, et si quelqu'un d'autre a ce problème inexplicable, alors c'est la réponse:

Lorsque vous faites référence mshtml.dll par les assemblées primaires Interop distribués avec Visual studio, l'espace de noms d'assembly est inférieur cas.

Si vous essayez de créer votre propre interop en utilisant tlbimp avec les options par défaut, l'espace de noms de l'assembly est Upper. En C# c'est ennuyeux, mais je suppose que Microsoft l'a fait pour que vous sachiez ce que vous avez fait de mal (à condition que vous sachiez déjà pourquoi le cas change). J'espère que cela économise du temps pour quelqu'un.

Marque