Плагин для отслеживания ошибок TortoiseSVN построен, но не реализован - PullRequest
0 голосов
/ 11 мая 2010

Я прочитал всю информацию о том, как создать плагин для отслеживания проблем в C # для TortoiseSVN. Я сделал это, создав библиотеку классов с интеграцией в систему отслеживания ошибок (SalesForce).

Я не знаю, как установить его на TortoiseSVN.

Я создал настройку для решения и могу установить ее (например, решение JIRA, которое я нашел в Интернете).

Я не знаю, чего не хватает.

Обновление:

Я сделал то, что вы написали, убедился, что все правильно. Я не получаю название провайдера, но GUID и ошибку: альтернативный текст http://img339.imageshack.us/img339/8558/sfsvnerror.jpg

что это может быть?

1 Ответ

0 голосов
/ 11 мая 2010

1) Вы должны убедиться, что у вас есть правильные CLSID, зарегистрированные в реестре - поэтому мой установщик вставляет следующие (поддельные) значения:

(Это, я думаю, должно быть эквивалентно запуску RegASM, как описано в нижней части файла issue-tracker-plugins.txt .

Установочный реестр изменяет образ http://img291.imageshack.us/img291/1618/registryinstaller.png

Вы должны иметь возможность импортировать этот файл реестра, чтобы начать:

(Вам, вероятно, придется динамически обновлять расположение CodeBase в зависимости от того, куда установлена ​​dll)

Редактор реестра Windows, версия 5.00

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA}] @ = "FogBugzPlugin.MyPlugin"

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA} \ Реализован Категории]

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA} \ Реализован Категории {3494FA92-B139-4730-9591-01135D5E7831}]

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA} \ Реализован Категории {62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA} \ InprocServer32] @ = "Mscoree.dll" "ThreadingModel" = "Оба" "Класс" = "FogBugzPlugin.MyPlugin" "Ассамблея" = "MyAssemblyName, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31286c9d1d5aa00a» "RuntimeVersion" = "v2.0.50727" "CodeBase" = "Файл: /// C: / Program Файлы / папки / AAAAAAAAAAAAA / MyAssemblyName.dll "

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA} \ InprocServer32 \ 1.0.0.0] "Class" = "FogBugzPlugin.MyPlugin" "Ассамблея" = "MyAssemblyName, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31286c9d1d5aa00a» "RuntimeVersion" = "v2.0.50727" "CodeBase" = "Файл: /// C: / Program Файлы / папки / AAAAAAAAAAAAA / MyAssemblyName.dll "

[HKEY_CLASSES_ROOT \ CLSID {AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA} \ ProgId] @ = "FogBugzPlugin.MyPlugin"

2) Необходимо убедиться, что пользователь добавляет Ассоциации BugTraq в реестр:

[HKEY_CURRENT_USER \ Software \ TortoiseSVN \ Ассоциации BugTraq \ 0] "Поставщик" = "{AAAAAAAAAAAA-AAAAAAAA-AAAAAAAAAAAA}" "WorkingCopy" = "C: \" "Параметры" = ""

(Это также может быть сделано пользователем вручную, перейдя в TSVN -> Настройки -> Сценарии ловушек -> Интеграция с системой отслеживания ошибок -> Добавить

Где "{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}" - это GUID провайдера, которого вы создали.

Все хорошо, плагин теперь должен быть доступен пользователю. когда они открывают диалог фиксации.


Обновление:

Устранение проблемы «Поставщик отображается как GUID», показанной выше ...

ОК ... при условии, что GUID вашего провайдера равен

{0DA7E319-1DCE-4A94-65555B5B6CE5}

Вы должны проверить:

Ваш плагин реализует IBugTraqProvider и IBugTraqProvider2 и к нему применен GUID:

namespace FogBugzPlugin
{
[ComVisible(true),
     Guid("0DA7E319-1DCE-4A94-65555B5B6CE5"),
     ClassInterface(ClassInterfaceType.None)]
    public class MyPlugin : IBugTraqProvider, IBugTraqProvider2

Так что теперь у вас должно быть: GUID: 0DA7E319-1DCE-4A94-65555B5B6CE5 PluginName: FogBugzPlugin.MyPlugin

Зайдите в regedit, посмотрите и посмотрите, что у вас есть в реестре. Это должно быть в соответствии с:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}]
@="FogBugzPlugin.MyPlugin"

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\Implemented Categories\{3494FA92-B139-4730-9591-01135D5E7831}]

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="FogBugzPlugin.MyPlugin"
"Assembly"="FogBugz2Tortoise, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31286c9d1d5aa00a"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/Program Files/folder/FogBugz2Tortoise/FogBugz2Tortoise.dll"

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\InprocServer32\1.0.0.0]
"Class"="FogBugzPlugin.MyPlugin"
"Assembly"="FogBugz2Tortoise, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31286c9d1d5aa00a"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///C:/Program Files/folder/FogBugz2Tortoise/FogBugz2Tortoise.dll"

[HKEY_CLASSES_ROOT\CLSID\{0DA7E319-1DCE-4A94-65555B5B6CE5}\ProgId]
@="FogBugzPlugin.MyPlugin"

У вас также должна быть запись ProgID / CLSID непосредственно под HKCR:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\FogBugzPlugin.MyPlugin]
@="FogBugzPlugin.MyPlugin"

[HKEY_CLASSES_ROOT\FogBugzPlugin.MyPlugin\CLSID]
@="{0DA7E319-1DCE-4A94-65555B5B6CE5}"

Надеюсь, это поможет - я бы сначала проверил последнюю точку.

...