代码之家  ›  专栏  ›  技术社区  ›  Oded

Tortoissesvn问题跟踪程序插件已构建-但未实现

  •  0
  • Oded  · 技术社区  · 14 年前

    我已经阅读了所有关于如何在C中为Tortoissesvn构建问题跟踪插件的信息。 我这样做了,建立了一个与我的问题跟踪(Salesforce)集成的类库。

    我不知道如何把它安装到Tortoissesvn本身。

    我已经为这个解决方案创建了一个安装程序,我可以安装它(就像我在网上找到的jira解决方案)。

    我不知道遗漏了什么。

    更新:

    我做了你写的,确保一切都是正确的。 我没有得到提供程序的名称,但得到了guid和一个错误: alt text http://img339.imageshack.us/img339/8558/sfsvnerror.jpg

    它会是什么?

    1 回复  |  直到 13 年前
        1
  •  0
  •   David Henderson    14 年前

    1)您需要确保您在注册表中注册了正确的clsid-因此我的安装程序插入以下(假)值:

    (我认为这应该等同于在 issue-tracker-plugins.txt 文件。

    Installer Registry Changes Image http://img291.imageshack.us/img291/1618/registryinstaller.png

    应该 可以导入此注册表文件以启动:

    (可能需要根据安装dll的位置动态更新基本代码位置)

    Windows注册表编辑器5.00版

    [hkey_classes_root\clsid_aaaa aaaa-aaaa-aaaaaa-aaaa-aaaaaaaaaa] @=“FogBugzPlugin.MyPlugin”中

    [hkey_classes_root\clsid_aaaa aaaa-aaaa-aaaaaa-aaaa-aaaaaaaaaa \已实现 类别

    [hkey_classes_root\clsid_aaaa aaaa-aaaa-aaaaaa-aaaa-aaaaaaaaaa \已实现 类别3494FA92-B139-4730-9591-01135D5E7831]

    [hkey_classes_root\clsid_aaaa aaaa-aaaa-aaaaaa-aaaa-aaaaaaaaaa \已实现 类别62C8FE65-4EBB-45E7-B440-6E39B2CDBF29]

    [hkey_classes_root\clsid_aaaaaaaaaa-aaaa-aaaaaa-aaaaaaaaaa \inprocserver32] @“Masyee,DLL” “threadingModel”=“两者” “class”=“FogBugzPlugin.MyPlugin”类 “assembly”=“我的程序集名称, 版本=1.0.0.0,文化=中性, PublicKeyToken=31286C9D1D5AA00A“ “runtimeversion”=“2.0.50727版” “codebase”=“文件:///c:/program 文件/文件夹/aaaaaaaaa/myassemblyname.dll“

    [hkey_classes_root\clsid_aaaaaaaaa-aaaaa-aaaaa-aaaaaaaaa \inprocserver32\1.0.0.0]“class”=“fogBugzPlugin.myPlugin” “assembly”=“我的程序集名称, 版本=1.0.0.0,文化=中性, PublicKeyToken=31286C9D1D5AA00A“ “runtimeversion”=“2.0.50727版” “codebase”=“文件:///c:/program 文件/文件夹/aaaaaaaaa/myassemblyname.dll“

    [hkey_classes_root\clsid_aaaaaaaaa-aaaa-aaaaaa-aaaa aaaa aaaa \progid] @=“FogBugzPlugin.MyPlugin”中

    2)您需要确保用户获得添加到注册表的Bugtraq关联:

    [hkey_current_user\software\toroissesvn\bugtraq associations\0] “提供商”=“aaaa aaaa-aaaa-aaaa-aaaaaa-aaaa aaaa” “WorkingCopy”=“C:\” “参数”=“”

    (用户也可以通过转到tsvn->设置->挂钩脚本->问题跟踪程序集成->添加手动完成此操作。

    其中“aaaa aaaa-aaaa-aaaaaa-aaaaaa-aaaa aaaa”是您创建的提供程序的GUID。

    一切正常,插件现在应该对用户可用。当他们打开提交对话框时。


    更新:

    正在排除上面显示的“provider show as 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 插件名称: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}"
    

    希望这有帮助-我先检查最后一点。