我在写的一个程序是用.net写com,因此生成程序集时要使用强名称。现在的问题是我在程序里要用到一个ocx控件(以前写好的),然而这个控件却没有强名称,在生成程序集的时候报告引用的程序集没有强名称。有什么解决办法?先谢谢了。
解决方案 »
- .NET Framework 版本修改问题!!
- 求助 关于窗体总在最前 topmost属性
- wpf窗口关闭后重新打开
- Pop3收邮件,如何提交速度
- 问一个关于关闭C#控制台应用程序的问题
- C#自写socked压力测试代码
- 急啊!!我做了个短信服务程序,将窗口最小化到任务栏后怎么就不接收短信了?
- 从服务器读出的数据流怎样先存放为服务器的一个文件,再打开来下载?
- 各位有没有比较快速的把数据库数据变化立即刷新到网页上的方案? <1秒
- OleDbParameter的问题,我想存入二进制的文件可是报错
- 求助:简单的加密。
- 为什么treeview1.SelectedNode.Parent.Nodes.Add(temp);不能使??
这个好麻烦,大致这样吧
比如你引用的是ADO组件,在添加引用之后会生成一个Interop.ADODB.DLL文件
然后你用ildasm 反编译Interop.ADODB.DLL成il代码存到一个文本文件abc.il中
然后再用sn.exe工具生成一个密钥对文件my.snk
再然后用ilasm编译abc.il,同时用my.snk对其签名
这样编译后,把新的dll文件覆盖掉原来的,就可以了
在发布组件时,还要同时发布Interop.ADODB.DLL这个文件,要不然必须把这个文件放到你的程序集所在的目录才可以
ilasm /DLL /OUTPUT=Interop.Excel.dll /KEY=my.snk
最好把那几个文件放到其它地方编译,要不然旧的Interop.Excel.dll已经存在的话,就不能输出新文件了
这是什么原因?是因为这个重新编译出的dll没有注册吗?