arcgis com注册

arcgis com注册,com,installation,arcgis,Com,Installation,Arcgis,我有几个类库,其中包含一些用于ArcGIS的命令和自动更新程序。到目前为止,每个库都包含一个安装程序类,我们只有一个安装项目,负责安装所有DLL。就像。 我现在创建了另一个包含工具栏的库,它应该包含我们所有的命令。该项目引用其他项目,并且BaseToolbar基类中的AddItem使用AddItemType类型重载,使其具有所有强类型,而不仅仅基于CLSID或名称的字符串。 当然,工具栏项目包含insallter。我只是想知道从上面的链接更改建议的安装程序实现是否是一个好主意,这样可以确保所有命

我有几个类库,其中包含一些用于ArcGIS的命令和自动更新程序。到目前为止,每个库都包含一个安装程序类,我们只有一个安装项目,负责安装所有DLL。就像。 我现在创建了另一个包含工具栏的库,它应该包含我们所有的命令。该项目引用其他项目,并且BaseToolbar基类中的AddItem使用AddItemType类型重载,使其具有所有强类型,而不仅仅基于CLSID或名称的字符串。 当然,工具栏项目包含insallter。我只是想知道从上面的链接更改建议的安装程序实现是否是一个好主意,这样可以确保所有命令的dll都将在输出文件夹中的dll文件上迭代注册,然后注册它们?有更好的办法吗? 这将把安装问题从每个命令项目转移到一个集中的位置。我认为通过这种方式添加更多命令会更容易,因为我只需要从工具栏项目添加对它们的引用。这有意义吗,或者我应该坚持在每个项目中分别安装一个安装程序,然后将它们逐个添加到安装项目中


还有一件事——有没有一种简单的方法可以在ArcMAP中找到几个命令的来源?我有一些奇怪的类别,是以前的用户在这台机器上创建的,其中有我想删除的旧命令。

我认为这是有道理的。当安装程序在Wise、installshield等中调用安装程序集上的RegisterAssembly和UnregisterAssembly时,您只需确保一切都在正确的位置。例如,如果卸载在调用UnregisterAssembly之前删除了您的命令程序集,则可能会出现问题。我想你只要测试一下就知道了。只要您知道所有的命令程序集都将可用,它就可以正常工作


您还可以通过在单独的公共程序集中包含公共安装代码并始终实现安装程序类来解决此问题。

更好、更方便的工作流是将所有命令ect放在一个库/程序集中。 这样,您只有一个dll要注册

至于找到其他定制工具来自的DLL,有一个技巧。
调试运行ArcMap的任何自定义ArcGIS扩展或示例。在VisualStudio中查看输出窗口。这将为您提供由ArcMap加载的所有dll的列表

是的,我知道我们应该为所有命令创建一个命令dll。“应该有”是关键词:-感谢vs提示。我来看看这个清单。