- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实现ActiveX控件开发与部署安装打包篇
因为C#开发的Dll是没有办法直接在页面中调用的,而且使用regsvr32是没办法注册的,只用
使用regasm才可注册成功,所以我们需要把它处理一下。
首先,我们在刚才开发用的解决方案中,创建一个“安装项目”
然后添加一个“项目输出”
选择“主输出”
在建立的输出上右键属性,注意Register这一项一定要是“vsdrpCOM”。标识使用regasm来完
成注册
另外提醒,在“检测到的依赖项”中双击“Microsoft .NET Framework”,然后“启动条件”的.Net
Framework上右键属性这里可以调整安装包以来的framework版本,在安装项目右键属性的“系
统必备”中,可以指定环境必须的framework版本。这些如果你是仅需要低版本要求时,是需要
更改的,否则可能到目标主机上部署时会遇到莫名其妙的问题。
妥了,开始生成安装包。会生成一个exe,一个msi 。这里我们使用msi即可。
另外注意,因为我们是使用msi的方式部署控件,这样就会有一个控件的安装过程 (可以静
默),所以你可以指定安装包的版本,用于以后自动升级;可以制作卸载程序,用于手动卸载
等等,看各位的需求了,简单贴上来一个制作卸载的过程,供大家参考:
拷贝文件C:/Windows/System32/msiexec.exe文件,修改文件名为Uninstall.exe,添加到安装项
目中,然后创建一个快捷方式。
在 【用户的“程序”菜单下边】添加一个文件夹ActiveX Unstall,将快捷方式拖动到这里边。
在卸载控件上点击右键,属性:
设置Arguments,就是指定要卸载的程序,后面的ProductCode可以这样获得:
选中项目,然后鼠标放到右侧的“属性”上,就可以看到ProductCode 了:
现在我们有了这个msi,下面我们开始打成cab包
先去微软下载cabsdk(下载地址:/kb/310618),我们需要里面的
CA BA RC.EX E工具
然后我们开始编写cab安装配置文件install.inf (文件名可以自定义)
内容如下:
[version]
signature $CHICAGO$
AdvancedINF 2.0
[Setup Hooks]
HOOKRUN1 HOOKRUN1
[HOOKRUN1]
run msiexec.exe /i %EXTRACT_ DIR%/QRCodeActiveX Install.msi /qn
也有人提出过下面的形式:
[Version]
signature $CHICAGO$
AdvancedINF 2.0
[Add.Code]
WebControl.dll WebControl.dll
Chart.dll Chart.dll
;需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序
[WebControl.dll]
file-win32-x86 thiscab
RegisterServer yes
clsid {5B7E1537-103F-4484-8326-2AA643E4537F}
DestDir 11 ;默认目录C:/WINDOWS/Downloaded Program Files
FileVersion 1,0,0,0
[Chart.dll]
file-win32-x86 thiscab
RegisterServer yes
clsid {0711C135-284C-4082-BE3D-C4 1B9B668527}
DestDir
FileVersion 3,2,2697,18420
但经过实际测试这样是不行的,因为 RegisterServer的注册方式实际上是调用了regsvr32完成
了控件的自动注册,而我们用c#实现的这个dll,不能通过regsvr32来完成注册,而是需要通过
regasm来完成。所以这样的话,上面的配置脚本会导致注册失败。反过来讲,如果我们使用
的是ocx的方式,上面的方法就是可行的。
而对于上面正确的脚本而言,有些人反映在某些系统环境下无法自动调用msiexec.exe,这样
的话可能需要调整一下思路,编写一个批处理run.bat
set CURDIR %cd%
msiexec.exe /i Setup.msi /qn
然后修改
您可能关注的文档
- Characteristics of high efficiency dyesensitized solar cells.pdf
- Characteristics of solitary waves on a running film down an inclined plane under an electrostatic.pdf
- Characterization and Uncertainty Analysis of a Reference Pressure Measurement System for Wi.pdf
- Characterizing and Modeling the Dynamics of Online Popularity.pdf
- Characters Analysis of Oliver Twist of Charles Dickens.doc
- Charged Excitons of Composite Fermions in the Fractional Quantum Hall Effect.pdf
- Checking Dimensional Safety Policies Dynamically and Statically.pdf
- Charged Particle Dynamics in the Field of a Slowly Rotating Compact Star.pdf
- Chemical Analysis and Classification of coal.ppt
- chemwindow_计算机在化学化工中的应用.ppt
文档评论(0)