2010-07-22 5 views
0

Je cours Visual Studio 2008 SP1 sur Windows 7.Pourquoi VS 2008 peut-il trouver un outil personnalisé sous XP mais pas sous Windows 7?

Ma société a un outil de construction qui s'enregistre sous le nœud C#. Plus précisément, il crée cette entrée dans le Registre:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 9.0 \ {générateurs fae04ec1-301f-11d3- bf4b-00c04f79efbc} \ AssemblyName]

D'autres membres de l'équipe sont en cours d'exécution de Windows XP, alors que je cours Windows 7. L'outil fonctionne bien pour eux. Lorsque j'essaie et exécute l'outil personnalisé dans VS 2008, cependant, une erreur non trouvée s'affiche.

J'ai collé le reste des modifications du registre ci-dessous. Pourquoi Visual Studio peut-il trouver l'outil sous XP mais pas sous Windows 7?

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 9.0 \ générateurs {fae04ec1-301f-11D3-bf4b-00c04f79efbc} \ AssemblyName] "CLSID" = "{ACD71775-E698-4CE2-9B59-C28E116E5394}" " GeneratesDesignTimeSource "= dword: 00000001 "GeneratesSharedDesignTimeSource"= dword: 00000001 @ =" AssemblyFriendlyName "

[HKEY_CLASSES_ROOT \ AssemblyName] @ = "AssemblyName"

[HKEY_CLASSES_ROOT \ AssemblyName \ CLSID] @ =" {ACD71775-E698-4CE2-9B59-C28E116E5394} "

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394}] @ = "AssemblyName"

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ Mis en œuvre Catégories]

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ {Mis en œuvre Catégories 62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59- C28E116E5394} \ InprocServer32] @ = "mscoree.dll" "ThreadingModel" = "Les deux" "Class" = "AssemblyClassName" "Assembly" = "AssemblyName, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = 2a949dc6e405b4f5" "RuntimeVersion" = "v2.0.50727" "CodeBase" = "file: // C: /Windows/Assembly.dll "

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ InprocServer32 \ 1.0.0.0] "classe"= "AssemblyClass" "Assemblée"=" AssemblyName , version = 1.0.0.0, Culture = neutral, PublicKeyToken = 2a949dc6e405b4f5" "runtimeVersion" = "v2.0.50727" "CodeBase" = "file: // C: /Windows/Assembly.dll"

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116 E5394} \ ProgId] @ = "AssemblyName"

+0

Qu'en est-il de 'file: // C:/Windows/Assembly.dll'? Ce fichier existe-t-il vraiment? S'il s'agit de votre DLL d'extension, essayez peut-être de le placer dans un dossier différent. Utilisez-vous x64? – Andreas

+0

Oui, le fichier existe. Oui, le système d'exploitation est x64. – rsteckly

+0

Essayé de changer le fichier de registre pour pointer vers un emplacement différent (répertoire de l'utilisateur) et copié le fichier là. Toujours pas aller. – rsteckly

Répondre

0

J'ai finalement trouvé la solution.

Le problème était que Windows 7/Vista avait un nœud différent pour les applications x86 qui tournaient dessus.

Lorsque j'ai téléchargé Process Monitor, j'ai constaté que VS recherchait sous HLM \ Wow6432Node \ Software au lieu de HLM \ Software. Ceci est spécialement créé pour les applications x86 exécutées en x64.Dès que j'ai ajouté les entrées à ce nœud, tout a bien fonctionné.

Questions connexes