vs2015+c#实现activex的开发,签名,部署
来源:互联网 发布:zeppelin源码分析 编辑:程序博客网 时间:2024/05/22 00:23
vs2015+c#实现activex的开发,签名,部署
本人是一名c#软件开发人员,就在最近的一个项目中要用到B/S的网站读取本地的DLL实现读取卡信息的功能,于是就去网上找各种的结解方案,最后找到了用activex插件的方式实现。但是发现网上好多写的都是很早的东西,有很多都不一样了,所以本人在这里总结一不用vs2015去如何的开发activex插件并实现部署。
1创建项目
使用vs2015创建一个新的解决方案命名为demo,在里面新建项目windows窗体控件如图:
然后在引用如下程序集
并写不如下接口
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] //GUID这个不需修改,固定的 public interface IObjectSagety { void GetInterfacceSafyOptions(System.Int32 riid, out System.Int32 pdwSupportedOptions, out System.Int32 pdwEnabledOptions); void SetInterfaceSafetyOptions(System.Int32 riid, System.Int32 dwOptionsSetMask, System.Int32 dwEnabledOptions); }
然后在UserControl1中实
public partial class UserControl1 : UserControl, IObjectSagety
实现内容如下
public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions) { pdwSupportedOptions = 1; //不要修改该代码 pdwEnabledOptions = 2; //不要修改该代码 return; } public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions) { return; }
然后在里面写个方法
public string Test() { return "ss"; }
然后用工具生成一个GUID并将这个GUID打在Control1的上面
到了这里基本方法也就建立好了,另外要记住这个GUID,最后就要生成dll了.右键点击项目找到属性
使程序集COM可见
生成事件中也要进行相应的设置
设置完成后就可以点击生成了。
2创建web项目并测试
将前一个项目生成的DLL放在这个项目的下面,在webFrom1.aspx里面写下如下代码
<h1 id="ss">TEST</h1><object id="VisioDisPlay" classid="clsid:A8E80E90-85ED-43B0-B06E-491A87EC8D2D" > </object> <script type="text/javascript"> $("#ss").click(function () { var object = document.getElementById("VisioDisPlay"); var ss = object.Test(); alert(ss); })</script>
注意,上面objectId 为上一个dll中用工具生成的guid,
点击运行就可以看到
看到了这个ss,这个ss正是我们写的方法返回的ss。走到了这里路就走了一半了,接下来就要做安装包了。点击解决方案新建一个打包的项目
注:在vs2015里面只有这一个打包工具了。
创建完成后就出现了这个界面
点击图中的按钮
图中的位置要根据自己的内容填写,这里我就不填了。
到这里的时候要加上自己第一个项目生成的dll
点击dll右键属性如下图操作
接下来的提示窗口的设置。自行百度我这里是这样设置的
生成设置完成了之后右键解决方案设置属性将这次叫生成的simpleImage
就会有一个exe的文件如下目录。就是结决方案的目录下面
到了这一步就可以把web引进的demo1.dll这个文件给删除了,替换成这个exe文件、
然后就webFrom1.aspx里面的代码修改如下
然后进行调试的时候会弹出这个框
点击安装后会弹出这个框
这是因为没有对exe签名造成的,这个时候有两个结解决办法。
1.降低ie的安全级别
然后刷新页面就可以了
安装好了,点击test就可以用。但是这样的话要求每个使用我这网页的人都要对IE进行安全设置,当然这个也是非常不爽的,也降低了IE的风险。要怎么解决这个问题呢,就需要用到签名技术了。
2.对于签名技术网上也是一大堆的方案,我用的系统是win10给出一种我认为比较简单的签名技术方案,当然要用到正式的签名的话,就要去申请了,这里我就不在说明了,我这里主要是用到makecert.exe生成签名文件并用signcode.exe对软件进行签名。
第一步。将makecert放在桌面上打开cmd命令,跳到桌面目录如图
然后输入如下命令
makecert -r -n “CN=Honor” -b 03/22/2017 -e 02/26/2024 -sv HonorC.pvk HonorC.cer
注: honor可以换成自已的名字。
然后输入密码
输入完成后就会出succeeded就说明建好了,再看桌面已经有了
HonorC.pvk HonorC.cer这两个文件
打开HonorC.cer这会发现如下
这里面的意思就是要把的这个证书安装到受信任的目录下面点击安装证书选择本地计算机这里一定要注意
然后下一步直到导入成功。
最后要对exe进行签名
双击signcode进行签名
点击下一步选择自定义
下一步
从文件中选择找到
点击下一步
找到这个
点击下一步输入密码,点击下一步选择sha1。默认就是这个。下一步-》下一步-》一直到完成-》点击完成输入密码,
出现在如下图片后就签名完成了。
这个时候再看这个exe就会发生不一样的变化了
这说明文件已经签名成功了
然后把ie的安全级别调上去,再去运行下网站项目,点击安装就可以安装了并有发布者的安样了,说明就已经签过名了
在这个时候就可以发布网站到IIS上面了。至此一个小的案例就已经写完了。时间比较仓促,中间有错字不要误会。另外网上说vs2015就已经带了,makecert.exe 和signcode.exe这两个文件,但是我没有找到,这里我也加个附件上去。方便小伙伴们用。
签名工具链接如下
签名工具
- vs2015+c#实现activex的开发,签名,部署
- C#实现ActiveX控件开发与部署---开发实现篇
- C# ActiveX开发部署更新
- C#实现ActiveX控件开发与部署---原理篇
- C#实现ActiveX控件开发与部署---安装打包篇
- C#实现ActiveX控件开发与部署---后记
- C# Activex开发、打包、签名、发布(转)
- C#实现ActiveX控件开发与部署---部署与升级篇
- C# ActiveX开发及安装部署
- c#实现的ActiveX控件
- C#開發Activex部署
- 使用C#构建带事件的签名ActiveX组件(一)
- 我的DEVOPS之路(一)VS2015实现安卓开发之环境部署
- 如何开发为HTML页面签名的ActiveX控件
- 注册c#开发的activex方法
- 注册c#开发的activex方法
- c#中开发ActiveX的学习笔记
- c#中开发ActiveX的学习笔记
- 关于指针的引用与指针的指针的理解
- 火焰检测算法 fire detectf方法 vs2010+opencv2.4.11
- 各大媒体盛赞 “艺术家眼中的新三峡”大型采风活动
- 紫燕ETL系统技术框架
- View阴影效果
- vs2015+c#实现activex的开发,签名,部署
- 关于进度条的操作
- 团体程序设计天梯赛-练习集 L1-025. 正整数A+B
- 站长工具之时间戳转换日期格式
- 网络图片加载的封装-(从零开始搭建android框架系列(4))
- 豆瓣爬虫与统计
- android_error——新down的项目下来运行报错
- 同步,异步,阻塞,非阻塞
- Photoshop 最新版 photoshop cc 破解补丁 无需注册码,序列号亲测可用