c#写的activex控件封装成CAB文件,没有任何反应,出现红叉
发布时间:2011-06-23 14:25:38 文章来源:www.iduyao.cn 采编人员:星星草
c#写的activex控件打包成CAB文件,没有任何反应,出现红叉
之前有将VC++写的activex控件打包成CAB文件,放到网页中是能够提示下载的,用的方法是VS2005中添加一个新CAB工程,将ocx添加进去,编译之后就能用了。
后来我想使用一个C#写的activex控件,也是用同样的方法制作了CAB文件,网页中就没有任何反应。后来查了一些资料,知道需要先写一个INF文件,然后再将dll文件和这个INF一起添加制作成CAB文件,但仍旧没有反应,只有一个红叉。我的INF文件如下,其中HelloWord.dll是我用c#写的,中间用到了mediacontrol.dll。
[version]
signature="$SCHICAGO$"
AdvancedINF=2.0
[Add.Code]
HelloWord.dll = HelloWord.dll
mediacontrol.dll=mediacontrol.dll
[mediacontrol.dll]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=5,4,17,11
[HelloWord.dll]
file-win32-x86=thiscab
clsid={048EB100-7186-4dde-8DB7-9116B3185F7F}
FileVersion=1,0,0,0
DestDir=11
RegisterServer=yes
;end of INF file
不知道问题出在了哪里,请大家帮忙,谢谢!
------解决方案--------------------
因为是.NET的控件,直接把那些 dll 装进 cab 不能发布,即使选择了 “Register for COM interop”。如果把 dll 放入msi, 然后封装成 cab,就能发布了。
参考:
http://www.codeproject.com/KB/cs/C__Deployment.aspx
------解决方案--------------------
WinTesst.inf文件 ;后表示注释
[Version]
signature="" ;支持Windows NT后所有的操作系统
AdvancedINF=2.0
[Add.Code] ;为要添加的内容
;=前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同
WebControl.dll=WebControl.dll ;包含的组件名
Chart.dll=Chart.dll
;需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序
[WebControl.dll]
file-win32-x86=thiscab ;在当前的cab文件中得到dll
RegisterServer=yes ;自动注册
clsid={5B7E1537-103F-4484-8326-2AA643E4537F} ;类的CLSID
DestDir= ;默认目录C:\WINDOWS\Downloaded Program Files
FileVersion=1,0,0,0 ;版本号
[Chart.dll]
file-win32-x86=thiscab
RegisterServer=yes
clsid={}
DestDir=
FileVersion=
创建cab文件:
进入C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin>
cabarc N C:\test.cab C:\Chart.dll C:\WebControl.dll C:\WinTesst.inf
N表示要创建一个新的文件,test.cab 是创建的文件名,WinTesst.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。
------解决方案--------------------
在工程里生成安装文件,再和INF文件一起打包,
INF文件只要这样写就行了:
[Version]
Signature="$CHICAGO$"
AdvancedINF=2.0
[Setup Hooks]
hook1=hook1
[hook1]
run=msiexec.exe /i "%EXTRACT_DIR%\xx.msi" /qr
打包:
cabarc.exe N xx.cab xx.msi xx.inf
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
关于visual studio 2005的工程文件*.vcproj的问题
请问:Visual Studio 2005 新建一个工程之后,会自动生产一个*.vcproj的一个文件,这...
-
用MFC画图的问题
我现在要用随机数产生300个固定的点保存在数组中,并在ondraw里画出这300个点,而且通过定时器使这300个点做运动。...
-
VS2010中的C++怎么连接数据库?
之前一直用VC++6.0的、现在想学学用最新的VS、但是感觉连接数据库和之前不一样了、具体应该怎么弄...
-
CLI编程 高手帮忙
我现在用C++/CLI 混编,
我有一个方法, 是调用一个C 的类库 得到一个 char * 的值
现在我...
-
新手求教::VC.NET2003里面的"添加变量"菜单变灰了,怎么弄?
最近学着用.net写程序,以前用的是6.0,不知道为什么我设计的EDIT Con...
-
刚学习vc.net 请教一个String做参数的问题,请高手指教一下
下面的代码为什么不能编译呢,出现这个错误呢
.\clr.cpp(12) : error C3...
-
VS2003中通过ADO取SQL2003中bigint 负值变正值的问题,求助!
在SQL2003中 数据库中假设 一个bigint类型的数据位-1234这样的值,通过如...
-
新手学习VC用那个版本的编译器好!
新手学习VC用那个版本的编译器好!?
------解决方案--------------------
VC++6.0
------解决...
-
正则表达式
有这样的字符串
"1,',2"",3"
希望将单个的"替换成单引号,将连续两个的""替换成一个双引号。
正则表达式该如何写。
...
-
为什么<<精通MFC>>附带的源程序不能编译成功
vc2010编译后有两个错误提示,分别如下,
错误一:
1>c:\program files\microsoft vi...