本文是去年《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的安装与卸载的更多相关文章

  1. NSIS:使用PassDialog插件实现密码安装(卸载)功能

    原文 NSIS:使用PassDialog插件实现密码安装(卸载)功能 有时,出于特殊的需求,我们要给安装或卸载程序加一个密码,只有输入了正确的密码才可以继续.比如: 下面我们使用插件来实现安装密码: ...

  2. ArcGis Classic COM Add-Ins插件开发的一般流程 C#

    COM add-ins是我对这种开发方式的称呼,Esri的官方文档里称其为“Extending ArcObject”或者“Classic COM extensibility”,Esri所称的addin ...

  3. 在Revit中如何显示附件模块(Add Ins) 这个命令页?zz

      分类: 概念说明 Revit Revit界面编程 Revit 二次开发入门2013-08-22 13:58 1395人阅读 评论(9) 收藏 举报 在windows 7 32-bit OS 上装了 ...

  4. Dynamics CRM 注册插件dll到GAC

    以server2012为例,搜索cmd,打开红框中的命令框,gacutil.exe -i "dll路径" 通过该命令把需要用到dll注册进gac(这里包括你的插件dll和你插件中引 ...

  5. QML C++插件dll引用

    插件的创建非常简单,但是它可以复用,并且为不同的应用程序扩展类型.使用创建的插件是非常灵活的解决方案.关于插件一个很好的例子见QmlBook-In-Chinese 中最后一章介绍的例子. 本文主要备忘 ...

  6. arcgis python arcpy add data script添加数据脚本

    arcgis python arcpy add data script添加数据脚本mxd = arcpy.mapping.MapDocument("CURRENT")... df ...

  7. ArcGIS Desktop python Add-in Python 插件的文件结构

    如上图所示: 插件文件夹在根目录下有一个config.xml文件,这个文件保存有在向导添加的描述该插件的定制信息. 插件还有一个安装文件夹,这个文件夹的主要功能是存放Python脚本. 你可以在安装文 ...

  8. ionic插件安装与卸载

    使用下面的命令查询.安装.卸载插件: $ ionic plugin list //列出所有已安装插件 $ ionic plugin remove 插件名 //先根据上面的list列出插件,然后根据插件 ...

  9. jd-eclipse反编译插件的在线安装和使用

    jd-eclipse反编译插件的在线安装和使用 JD-Eclipse是一个Eclipse平台的插件.它允许您调试所有的Java源代码,有了它,以后调试的时候ctrl键就可以一键到底啦.下面简单说说ec ...

随机推荐

  1. Redis笔记-单机版安装

    1.几个相关概念 概念 现象描述 规避措施 穿透 通过访问一个缓存中不存在的key,导致程序一定要在数据库中执行查询 将访问结果进行处理,如果返回是null,也存储在缓存中,可以将过期时间设置较短 雪 ...

  2. python3 list列表随机选取一个元素、随机选择一个user-agent

    爬虫时适当更换user-agent可以稍微规避一下代理被封的风险... from random import sample ua = [ 'Mozilla/4.0 (compatible; MSIE ...

  3. 我的Windows日常——Win7完美兼容tsmmc.msc的方法

    操作步骤 32位操作系统: 1.将2003系统C:\WINDOWS\system32目录下的mstsmhst.dll.mstsmmc.dll.tsmmc.msc拷贝到Windows7系统中的C:\WI ...

  4. 在Windows 10 x64 编译ReactOS-0.4.5源码并在VMare中运行

    1.首先下载ReactOS源码(版本是0.4.5,最新版本0.4.9暂没有编译),然后下载RosBe(版本是2.1.6) 2.将下载好的ReactOS源码包放到指定磁盘的文件夹中,目录路径为英文(重要 ...

  5. Jquery消息提示插件toastr使用详解

    toastr是一个基于jQuery简单.漂亮的消息提示插件,使用简单.方便,可以根据设置的超时时间自动消失. 1.使用很简单,首选引入toastr的js.css文件 html <script s ...

  6. Linux学习-汇总

    1.基础linux学习 Linux-基础学习(一)-基本命令 Linux-基础学习(二)-基本部署 Linux-基础学习(三)-Nginx学习 Linux-基础学习(四)-部署图书管理系统项目 Lin ...

  7. 深蓝词库转换2.4版发布,支持最新的搜狗用户词库备份bin格式

    很高兴的告诉大家,感谢GitHub上的h4x3rotab提供python版的搜狗用户词库备份bin格式的解析算法,感谢tmxkn1提供了C#版的实现,深蓝词库转换终于迎来了一个重大更新,能够支持搜狗用 ...

  8. html与ios交互方法 WebViewJavascriptBridge

    WebViewJavascriptBridge 1.html调用ios的方法 <!DOCTYPE html> <html lang="en"> <he ...

  9. node-portfinder

    nstallation   $ [sudo] npm install portfinder   Usage var portfinder = require('portfinder'); portfi ...

  10. .a 文件 和 so 文件

           所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分.当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源..so文件是共 ...