我有一个Windows窗体项目(VS 2005,.net 2.0).该解决方案引用了9个项目.在我的一台计算机上,一切正常并且编译良好.当我将它移动到第二台计算机时,9个项目中的8个编译没有任何问题.当我尝试编译第9个项目(应用程序的主项目 - 生成.exe文件来执行应用程序)时,我收到以下错误:
'Error 3: A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)'
Run Code Online (Sandbox Code Playgroud)
错误的文件位置列为"C:\ PATH-TO-APP\LC".
我检查了项目属性,并且所有项目都设置为在调试模式下构建,它们都不应该被签名.在失败的项目中,它引用的唯一不在任何其他项目中的程序集是Microsoft.VisualBasic(.net 2.0程序集).因此,我无法找到导致此错误的ID(错误消息中上面引用的文件 - "LC" - 不存在.
任何人都知道如何强制项目接受所有未签名的程序集,或确定哪个程序集是罪魁祸首?
开发环境与当前环境之间的开发环境之间唯一有意义的区别是第一个是XP,这是Vista64.但是,我的一位使用XP的同事也遇到了同样的错误.
正在使用的第三方程序集:
所有这些都在解决方案中的其他项目中被引用,这些项目没有任何问题,因此看起来不是这些问题.
到目前为止,我已经尝试删除suo文件,Rebuild All,从解决方案中卸载和重新加载项目,删除和读取引用的程序集.没有任何效果.
“强名称:表示引用已使用密钥对进行签名。”
如果您的当前项目的组件签署,那么你的所有引用程序必须也签署。否则将导致此错误。
解决方案资源管理器 > 参考 > [单击有问题的参考] > 属性
方法 1:取消对当前项目程序集的签名。
项目属性 > 签名 > 对程序集进行签名(复选框)
方法二:对参考项目的程序集进行签名。(如果是自己搭建的话)
(对于绝望的故障排除者)
在" 解决方案资源管理器"窗口中,如果向下查看引用列表并在" 属性"窗口中选中每个引用列表,则查看属性Strong Name = False指向潜在问题.
| 归档时间: |
|
| 查看次数: |
34699 次 |
| 最近记录: |