当前位置:首页教育技巧WPS技巧wps文档

WPS插件开发流程(2)

减小字体 增大字体 2024-01-04 09:46:15


上一篇文章WPS插件开发流程(1)中,我们详细讲了如何在Visual Studio中如何创建插件、在WPS中显示插件的方法。今天我们完成剩下的部分,讲解如何导出PIA、DLL强签名、打包安装文件夹的方法。需要注意的是,开发WPS插件方法不止一种,我分享的开发流程仅供大家参考


(八)生成WPS演示所需的PIA

1. 打开WPS的安装文件夹,找到ksoapi.dllwppapi.dll,复制到D盘下自己创建的PIA文件夹中,方便后续操作

提示:若需要生成WPS文字或WPS表格的PIA,对应的DLL分别是wpsapi.dl或etapi.dlll

2. 在开始菜单中,打开”VS 2017的开发人员命令提示符

3. 输入cd “D:PIA”,进入PIA文件夹中

4. 输入TlbImp ksoapi.dll (注意是tlbimp)后回车,会在PIA文件夹中生成Office.dll。输入TlbImp wppapi.dll后回车,会在PIA文件夹中生成PowerPoint.dll

5. 这样我们就得到了Office.dllPowerPoint.dll两个文件

(九)强签名

如果要将这两个Dll添加到GAC,还需要进行强签名(若用户是WPS专业版则不需要,为了兼容性,推荐进行强签名)。另外,如果项目中引用了第三方未签名的dll,则必须进行强签名才能引用

1. 输入sn -k test.pfx后回车,生成随机密钥对

提示:此处的test.pfx可以是任意名称,密钥文件扩展名也可以是.snk

2. 输入ildasm Office.dll /out:Office.il后回车,采用反汇编工具ildasm生成中间语言。

3. 输入ilasm /dll /res:Office.res /key:test.pfx Office.il /out:Office.dll后回车,采用汇编工具ilasm(注意不要看成ildasm重新生成dll

4. PowerPoint.dll的强签名操作按照步骤2和3类推,输入以下命令

ildasm PowerPoint.dll /out:PowerPoint.il

ilasm /dll /res:PowerPoint.res /key:test.pfx PowerPoint.il /out:PowerPoint.dll

5. 重新生成dll后提示:Operation completed successfully,说明强签名成功

提示:经过强签名后的dll会覆盖原来未签名的dll

6. 强签名后的Office.dll和PowerPoint.dll

(十)部署

1. 将项目调试由Debug改为Release

提示:第一次切换Debug为Release,需要在项目属性中重新设置:生成(为COM互操作注册)、调试(启动外部程序

2. 点启动按钮后关闭WPP,目的是为了让VS生成Release版的项目dll

3. 在项目上右键,点”在文件资源管理器中打开文件夹

4. 双击打开bin文件夹,双击打开Release文件夹,将之前强签名后的dll复制过来

5. 将上一篇文章中步骤(六)中创建的安装卸载注册表文件也复制过来

6. 将NETFX 4.0 Tools文件夹复制过来(该文件夹在项目源码中有)

7. 在记事本中输入已下代码,另存为”安装.bat”批处理文件

@echo off

@set baseDir="%cd%"

Echo.

Echo 【1】导入注册表

regedit /s %baseDir%install.reg

Echo.

Echo 【2】注册类型

C:WindowsMicrosoft.NETFrameworkv4.0.30319RegAsm %baseDir%WPP_test.dll /tlb:%baseDir%WPP_test.tlb

Echo.

Echo 【3】添加程序集到GAC

@SET GACUTIL="%baseDir%NETFX 4.0 Toolsgacutil.exe"

%GACUTIL% -i %baseDir%WPP_test.dll

%GACUTIL% -i %baseDir%PowerPoint.dll

%GACUTIL% -i %baseDir%Office.dll

Echo.

pause

8. 在记事本中输入以下代码,另存为”卸载.bat”批处理文件

@echo off

@set baseDir="%cd%"

Echo.

Echo 【1】从缓存中移除程序集

@SET GACUTIL="%baseDir%NETFX 4.0 Toolsgacutil.exe"

rd /s /Q C:WindowsMicrosoft.NETassemblyGAC_MSILWPP_test

rd /s /Q C:WindowsMicrosoft.NETassemblyGAC_MSILPowerPoint

rd /s /Q C:WindowsMicrosoft.NETassemblyGAC_MSILOffice

Echo.

Echo 【2】注销类型

C:WindowsMicrosoft.NETFrameworkv4.0.30319RegAsm /u %baseDir%WPP_test.dll /tlb:%baseDir%WPP_test.tlb

Echo.

Echo 【3】清除注册表

regedit /s %baseDir%uninstall.reg

Echo.

pause

说明:

(1)%cd%是bat文件当前文件夹路径;RegAsm是程序集注册工具,需要用户先安装Microsoft .Net Framework 4.0;gacutil.exe是全局程序集缓存工具,用户电脑一般没有,所以需要我们将NETFX 4.0 Tools文件夹附带在安装包里

(2)上面的”安装.bat”和”卸载.bat”中均默认注册或移出PowerPoint.dll和Office.dll,如果用户安装了同样也是本文章方法创建的插件,可能会影响其他插件使用。为保险起见,我们可以在”卸载.bat”文件中不要移除C:WindowsMicrosoft.NETassemblyGAC_MSIL文件夹下的PowerPoint和Office文件夹。即在上方”卸载.bat”代码中去掉下面两句:

rd /s /Q C:WindowsMicrosoft.NETassemblyGAC_MSILPowerPoint

rd /s /Q C:WindowsMicrosoft.NETassemblyGAC_MSILOffice

9. 将Release文件夹整体拷贝出来,打包发给用户。用户安装时,以管理员身份运行”安装.bat”即可安装插件

10. 用户安装失败常见原因

(1)用户未安装Microsoft .Net Framework 4.0

(2)Win7以上系统,用户未以管理员身份运行安装.bat

(3)安装文件夹所在路径中有空格,需去掉文件夹路径中的空格

(4)注册表未成功添加插件信息,需要用户手动双击”install.reg”添加插件信息到注册表

项目源码

私信“WPS插件源码”,我看到后会私信发源码的下载链接

评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2024 www.at317.com All Rights Reserved .