首页新闻找找看学习计划

要将程序集“DLL\Interop.WMPLib.dll”标记为系统必备,必须对其进行强签名

0
悬赏园豆:10 [已解决问题] 解决于 2015-07-07 13:23

今天在用ClickOnce 发布程序时,总是报

错误 42 要将程序集“DLL\Interop.WMPLib.dll”标记为系统必备,必须对其进行强签名。 

 

错误。

 

我根据网上说的 把应用程序中的这个的发布状态也改成包括了,也还是不行。

 

求大神帮助 。谢谢了

Baby爱薇儿的主页 Baby爱薇儿 | 初学一级 | 园豆:66
提问于:2015-07-07 10:58
< >
分享
最佳答案
0

标记为系统必备了吗?

进行强签名了吗?

收获园豆:10
Launcher | 高人七级 |园豆:45030 | 2015-07-07 11:12

我就不知道如何进行强签名。在引用中看这个DLL 就是没有强签名。其他都有,这个怎么破啊。

这个也弄了,还要咋弄呢?

Baby爱薇儿 | 园豆:66 (初学一级) | 2015-07-07 13:05

@Baby爱薇儿:自己解决了,

首先在VS 命令提示器中 进入你所要签名DLL 目录:

例如 你的DLL 放在F:Test/dll 下  就需要提示器也要在此目录下 才能进行一下步骤:

1)创建一个新的随机密钥对:sn -k myTest.snk

2) 将DLL文件解开: ildasm myTest.dll /out:myTest.il
3) 将签名合入DLL :ilasm myTest.il /res:myTest.res /dll /key:myTest.snk /out:myTestSN.dll
4) 检查: sn -vf myTestSN.dll

5)在程序中重新引用下此dll。

Baby爱薇儿 | 园豆:66 (初学一级) | 2015-07-07 13:29

@Baby爱薇儿: 我假设你在“包括”那里选择的是“系统必备”,那么你需要回到项目的数据页,在“签名”页面选中“为程序集签名”这个选项,如果不选,就会提示你“要将程序集“DLL\Interop.WMPLib.dll”标记为系统必备,必须对其进行强签名”。

 

如果你不选择“系统必备”,而是设置为“包括”,那么就不需要强名称签名。

Launcher | 园豆:45030 (高人七级) | 2015-07-07 13:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册