首页 > 代码库 > VS报:"dll标记为系统必备组件,必须对其进行强签名"错误

VS报:"dll标记为系统必备组件,必须对其进行强签名"错误

问题:	VS生成程序时,报“要将程序集“XX.dll”标记为系统必备组件,必须对其进行强签名。”错误。解决方法:	1)在报错的解决方案中找到一个可以发布的项目(引用该XX.dll的项目未必可以发布);	2)右击该项目,选择“属性”;	3)选择“发布”;	4)点击“应用程序文件”按钮;	5)找到该“XX.dll”,将发布状态有“系统必备”改为“包括(自动)”;	6)再次运行成功。

参考:

1、 首先说明一下:X是某程序集的名称,相当于数学中的未知数X。 看到这样的提示,开始我以为是把程序集X的发布状态设为“系统必备”了,我检查了一下,发现程序集X的发布状态是“包括(自动)”,看样子提示信息误本身有误,但发

布的包里有十几个程序集,单单是X出现了问题,原因必然和X有关,这个结论应该是没有错的。 后来经过几番折腾,终于找了问题原因: 被打包的程序由一个EXE程序集和十几个DLL程序集组成,EXE程序集和其中4个DLL程序集都引用了程序集X,但是其中有一个DLL程序集引用的是X的7.5版本,其他程序集引用

的是X的7.6版,这样导致了版本冲突,自然无法发布。 虽然.NET给出了错误提示,但里面还是包含了找出问题原因的线索,其他造成此错误的原因估计也应该和程序集的版本有关,希望此文对您有所帮助。 2、 最近编译经常偶尔出现标题这个错误,有时重启电脑,就正常了,有时重启也不行,真蛋疼,后来发现把dll预先拷贝到生成目录,也可以避免这个编译错误,但是实在是麻

烦,再去Google了半天,终于找到了解决方案:右击报错的项目=〉属性=〉发布=〉把这个dll的发布状态由“包括(自动)”改成“包括” 问题解决

VS报:"dll标记为系统必备组件,必须对其进行强签名"错误