2011-05-16 3 views
0

Je tente d'enregistrer une DLL basée sur un SIG sur un ordinateur de test et je rencontre des problèmes lors du chargement dans le fichier tlb avec ArcGIS 9.3.1 - ArcMap sur l'ordinateur de test. Lorsque je tente de charger le fichier tlb, il est dit "Aucun nouvel objet ajouté". J'ai créé le fichier dll en utilisant Visual Studio 2010. Le fichier tlb se charge très bien sur mon ordinateur développeur. J'inscris la dll/tlb sur l'ordinateur de test en utilisant la commande cmd.exe (voir ci-dessous).Registre dll/tlb

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Temp\My.dll /tlb:My.tlb/codebase 

L'enregistrement répond comme étant réussi et l'élément est répertorié dans la catégorie Composants sous la catégorie MX Commands. Voici le code de la partie GU GUI que j'utilise dans ma classe.

#Region "COM GUIDs" 
    Public Const ClassId As String = "1bf94bdf-907c-4026-816f-50feb7a2a976" 
    Public Const InterfaceId As String = "7ba8a4d5-d15c-4d95-a819-a3e7cbe84533" 
    Public Const EventsId As String = "2ab51582-47e1-490c-899d-a80992c20fdf" 
#End Region 

Le système d'exploitation de l'ordinateur de développeur est:

Microsoft Windows XP 32 bits, Version 5.1 - Service Pack 3

ET

Le système d'exploitation de l'ordinateur de test est :

Microsoft Windows XP 64bit, Version 5.2 - Service Pack 2

Dois-je effectuer une mise à jour de Windows sur l'ordinateur du développeur (vers la version 5.2) ou y a-t-il un problème dans ma méthode d'enregistrement dll/tlb?

Merci pour votre aide!

MISE À JOUR:

Le logiciel ArcGIS sur l'ordinateur de test est installé sous le répertoire C: emplacement \ Program Files (x86).

Répondre

1

Je pense que vous devez l'enregistrer en utilisant la version 64 bits de RegASM sur votre PC cible. Vous devriez le trouver dans:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727 
            ^^ 

Notez que je suppose que vous avez compilé votre code MSIL (en sélectionnant AnyCPU comme la plate-forme). Si vous l'avez compilé pour cibler 32-bit, vous devrez le modifier. Ceci est dû au fait qu'un processus 64 bits ne peut pas trouver les enregistrements effectués par la version 32 bits de RegAsm et vice-versa.

+0

l'UC cible a été définie sur AnyCPU. J'ai essayé votre chemin "Framework64". Il l'a enregistré, mais quand je l'ai cherché dans la catégorie Component, il n'était pas listé, alors que l'option de chemin "Framework" l'a listée dans la catégorie Component. L'ordinateur de test dispose de deux dossiers Program Files sous le lecteur C: ("Program Files" et "Program Files (x86)".) Le logiciel ArcGIS se trouve dans le dossier Program Files (x86) – artwork21

+0

@ artwork21 Le logiciel ArcGIS est 32 -bits dans ce cas, donc ma réponse ne s'applique pas.Je vais laisser ici comme c'est un problème commun –

+0

dois-je faire une mise à jour de Windows sur l'ordinateur du développeur pour mettre à niveau le service pack à 5,2? Merci! – artwork21