ArcGis Classic COM Add-Ins插件dll的安装与卸载
本文是去年《ArcGis Classic COM Add-Ins插件开发的一般流程 C#》一文(以下称“开发流程”)的后续。“开发流程”中写到会有“安装与卸载”系列的文章,今天把它补上。
想起这个事情来缘由是一个小朋友问我怎么卸载插件。那厮是不是小朋友无法确定,不过从交流方式看挺符合“小朋友”的特征,他给我发的第一条信息是“怎么卸载?”怎么尼妹啊,天知道你说的啥,于是我让他看上面的文章自己研究去了……
一、安装
1、常用方法Add from file
在ArcMap中【自定义Customize】—【自定义模式Customize mode】—【自文件 Add from file】,添加.tlb文件。

要清楚.tlb是依赖.dll而存在的,不要删除、移动或者改名.dll。
“开发流程”中写到“可以选择是否生成.tlb(Type Library)文件,可以通过在ArcGis的桌面程序中加载.tlb文件实现插件的加载”,也写到“不过这种加载方式有时会存在问题”。
这种方法适合加载一些commands, tools, and toolbars的组件,但是对于DockableWindow等的组件会有注册问题,也就是说这样安装插件,DockableWindow等的工具是不能用的。
具体的,官方帮助里是这样写的:
Use the Customize dialog box in ArcGIS applications to add commands, tools, and toolbars. Click the Add from File button on this dialog box to browse for the type library (.tlb) file created for your customization, then open it, which allows the ArcGIS Framework to add selected classes in the type library to the applicable component category.
This method is beneficial if you want to use an existing compiled component that contains command items (commands, tools, and toolbars) but does not have automatic registration code.
For .NET components, select the type library instead of the .dll file.
有兴趣扒洋文的,链接在这里→Registering classes in COM component categories
2、ESRIRegAsm.exe
自10.0开始ESri改变了以往的把COM组件注册信息写进注册表的注册方法,采用了自家的ESRIRegAsm.exe对dll进行注册,使用一个xml配置文件(.ecfg)保存注册信息。相关信息可以去翻看“开发流程”。ESRIRegAsm.exe在~:\Program Files\Common Files\ArcGIS\bin路径下。
注册成功会生成配置文件.ecfg,在~:\Program Files(Program Files x86)\Common Files\ArcGIS\Desktop10.0\Configuration\CATID路径下。
2.1手动
在需要安装注册的.dll上右键使用ESRIRegAsm.exe打开,选择要安装到的对象→注册就可以了,这个“对象”可以是Desktop,也可以是 Engine,它是在.dll的代码里写死的,比如下图的工具只能注册到desktop。相关信息移步阅读“开发流程”。

2.2自动
这种安装方式可以写一个批处理文件搞定,复制下面代码放到文本文档,把set b=%a%YTools.dll 的YTools.dll 改成你要安装的插件.dll名,保存,改扩展名为.bat,与.dll放到同一路径下,双击实现安装注册。
@echo off
echo 》安装插件到ArcMap……………………
set a=%~dp0
echo 》当前路径: %a%
set b=%a%YTools.dll
echo 》dll路径:%b%
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
:x64
echo 》当前系统位数:64位
cmd /c"cd/d C:\Program Files (x86)\Common Files\ArcGIS\bin&&ESRIRegAsm.exe /p:desktop "%b%""
exit
:x86
echo 》当前系统位数:32位
cmd /c"cd/d C:\Program Files\Common Files\ArcGIS\bin&&ESRIRegAsm.exe /p:desktop "%b%""
exit
pause
批处理代码很简单,看不懂的就……放弃吧!
链接还是扔在这里,喜欢扒 洋文的自己戳→ESRIRegAsm utility
可以借由这种方式发布插件,实现用户一键注册。
二、卸载
在ArcMap顶部功能区右键勾掉,在“自定义”窗口勾掉,都不能卸载插件的,它只是不显示了而已。
1、在ArcMap勾掉插件项,然后删掉配置文件.ecfg
.ecfg在~:\Program Files\Common Files\ArcGIS\Desktop10.0\Configuration\CATID路径下,是{GUID}插件dll名.ecfg命名样式的一个文件,如{7a0b95da-488a-4dca-98fe-968ed7a12730}_YTools.ecfg
2、ESRIRegAsm.exe
2.1手动
在插件dll上右键使用ESRIRegAsm.exe打开,反注册。
2.2自动
还是用那个批处理代码,与安装代码的区别只在一个参数,有兴趣仔细瞅的还建议去看洋文。自己戳→ESRIRegAsm utility
@echo off
echo 》从ArcMap卸载本插件……………………
set a=%~dp0
echo 》当前路径: %a%
set b=%a%YTools.dll
echo 》dll路径:%b%
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
:x64
echo 》系统位数:64位
cmd /c"cd/d C:\Program Files (x86)\Common Files\ArcGIS\bin&&ESRIRegAsm.exe /p:desktop /u "%b%""
exit
:x86
echo 》系统位数:32位
cmd /c"cd/d C:\Program Files\Common Files\ArcGIS\bin&&ESRIRegAsm.exe /p:desktop /u "%b%""
exit
pause
ArcGis Classic COM Add-Ins插件dll的安装与卸载的更多相关文章
- NSIS:使用PassDialog插件实现密码安装(卸载)功能
原文 NSIS:使用PassDialog插件实现密码安装(卸载)功能 有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续.比如: 下面我们使用插件来实现安装密码: ...
- ArcGis Classic COM Add-Ins插件开发的一般流程 C#
COM add-ins是我对这种开发方式的称呼,Esri的官方文档里称其为“Extending ArcObject”或者“Classic COM extensibility”,Esri所称的addin ...
- 在Revit中如何显示附件模块(Add Ins) 这个命令页?zz
分类: 概念说明 Revit Revit界面编程 Revit 二次开发入门2013-08-22 13:58 1395人阅读 评论(9) 收藏 举报 在windows 7 32-bit OS 上装了 ...
- Dynamics CRM 注册插件dll到GAC
以server2012为例,搜索cmd,打开红框中的命令框,gacutil.exe -i "dll路径" 通过该命令把需要用到dll注册进gac(这里包括你的插件dll和你插件中引 ...
- QML C++插件dll引用
插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型.使用创建的插件是非常灵活的解决方案.关于插件一个很好的例子见QmlBook-In-Chinese 中最后一章介绍的例子. 本文主要备忘 ...
- arcgis python arcpy add data script添加数据脚本
arcgis python arcpy add data script添加数据脚本mxd = arcpy.mapping.MapDocument("CURRENT")... df ...
- ArcGIS Desktop python Add-in Python 插件的文件结构
如上图所示: 插件文件夹在根目录下有一个config.xml文件,这个文件保存有在向导添加的描述该插件的定制信息. 插件还有一个安装文件夹,这个文件夹的主要功能是存放Python脚本. 你可以在安装文 ...
- ionic插件安装与卸载
使用下面的命令查询.安装.卸载插件: $ ionic plugin list //列出所有已安装插件 $ ionic plugin remove 插件名 //先根据上面的list列出插件,然后根据插件 ...
- jd-eclipse反编译插件的在线安装和使用
jd-eclipse反编译插件的在线安装和使用 JD-Eclipse是一个Eclipse平台的插件.它允许您调试所有的Java源代码,有了它,以后调试的时候ctrl键就可以一键到底啦.下面简单说说ec ...
随机推荐
- asp.net动态添加控件学习
看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页 ...
- 《SQL CookBook 》笔记-第三章-多表查询
目录 3.1 叠加两个行集 3.2 合并相关行 3.3 查找两个表中相同的行 3.4 查找只存在于一个表中的数据 3.5 从一个表检索与另一个表不相关的行 3.6 新增连接查询而不影响其他连接查询 3 ...
- Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查
前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...
- 内存与IO的交换【转】
用户进程的内存页分为两种: file-backed pages(文件背景页) anonymous pages(匿名页) 比如进程的代码段.映射的文件都是file-backed,而进程的堆.栈都是不与文 ...
- 我的第一个python web开发框架(38)——管理员管理功能
后台管理员的管理功能,它主要用来管理后台的登录账号,绑定权限,当然如果想将后台管理扩展成企业相关管理系统,比如用于公司人事管理,在这个基础上进行适当扩展就可以了. 我们先看看界面效果(也可以看着数据字 ...
- Linux新手随手笔记1.5
FHS Linux / 代表根目录 /root 管理员的家目录 /boot 启动引导文件,以及开机菜单都会保存在里面 /bin 保存我们系统中命令的目录,不止bin,只要带bin的比如sb ...
- 【转】HTTP请求中的form data和request payload的区别
jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的,比如用$.ajax方法发送请求时(data参数是一个JSON.stringify()处理后的字符串, ...
- 安装WebLogic失败,出现”[VALIDATION] [ERROR]:INST-07004: Oracle 主目录(O) 位置包含一个或多个无效字符“解决方案
题如图 解决方案: 在管理员cmd窗口定位到jdk bin目录,然后输入以下命令 java -jar F:\java\fmw_12.2.1.3.0_wls_quick_Disk1_1of1\fmw_1 ...
- 腾讯通信云服务端使用心得,腾讯云IM
腾讯通信云服务端使用心得 1.腾讯通信服务入口并创建应用 方便使用保留url地址 : https://cloud.tencent.com/product/im 注册账号腾讯云账号->通过审核 ...
- 最新:百度春节抢百万游戏--汤圆向前冲--辅助工具v1.0.0.2
https://www.cnblogs.com/Charltsing/p/ADBJumpTY.html 联系QQ:564955427 本程序为Windows版,不要在手机里面打开. 汤圆向前冲辅助工具 ...