Почему VS 2008 может найти специальный инструмент в XP, а не в Windows 7? - PullRequest
0 голосов
/ 23 июля 2010

Я использую Visual Studio 2008 SP1 в Windows 7.

В моей компании есть инструмент для сборки, который регистрируется под узлом C #. Более конкретно он создает эту запись в реестре:

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

Другие члены команды работают под управлением Windows XP, а я работаю под управлением Windows 7. Инструмент отлично работает для них. Однако, когда я пытаюсь запустить пользовательский инструмент в VS 2008, я получаю ошибку not found.

Я вставил остальные изменения в реестр ниже. Почему Visual Studio может найти инструмент в XP, а не в Windows 7?

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 9.0 \ Генераторы {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} \ Реализованные категории]

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ Реализованные категории {62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ InprocServer32] @ = "Mscoree.dll" "ThreadingModel" = "Оба" "Класс" = "AssemblyClassName" "Assembly" = "AssemblyName, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = 2a949dc6e405b4f5" "RuntimeVersion" = "v2.0.50727" = "Файл: // C: /Windows/Assembly.dll" "CodeBase"

[HKEY_CLASSES_ROOT \ CLSID {ACD71775-E698-4CE2-9B59-C28E116E5394} \ InprocServer32 \ 1.0.0.0] "класс" = "AssemblyClass" "Assembly" = "AssemblyName, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = 2a949dc6e405b4f5" "RuntimeVersion" = "v2.0.50727" = "Файл: // C: /Windows/Assembly.dll" "CodeBase"

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

1 Ответ

0 голосов
/ 24 июля 2010

Я наконец нашел решение.

Проблема заключалась в том, что в Windows 7 / Vista есть другой узел для запущенных на них приложений x86.

Когда я скачал Process Monitor , я обнаружил, что VS ищет HLM \ Wow6432Node \ Software вместо HLM \ Software. Это создано специально для приложений x86, работающих в x64. Как только я добавил записи в этот узел, все работало нормально.

...