我有一个Windows窗体项目(VS 2005,.net 2.0).该解决方案引用了9个项目.在我的一台计算机上,一切正常并且编译良好.当我将它移动到第二台计算机时,9个项目中的8个编译没有任何问题.当我尝试编译第9个项目(应用程序的主项目 - 生成.exe文件来执行应用程序)时,我收到以下错误:
'Error 3: A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)'
错误的文件位置列为"C:\ PATH-TO-APP\LC".
我检查了项目属性,并且所有项目都设置为在调试模式下构建,它们都不应该被签名.在失败的项目中,它引用的唯一不在任何其他项目中的程序集是Microsoft.VisualBasic(.net 2.0程序集).因此,我无法找到导致此错误的ID(错误消息中上面引用的文件 - "LC" - 不存在.
任何人都知道如何强制项目接受所有未签名的程序集,或确定哪个程序集是罪魁祸首?
开发环境与当前环境之间的开发环境之间唯一有意义的区别是第一个是XP,这是Vista64.但是,我的一位使用XP的同事也遇到了同样的错误.
正在使用的第三方程序集:
ComponentFactory.Krypton.Toolkit
ComponentFactory.Krypton.Navigator
VistaDB.NET20
所有这些都在解决方案中的其他项目中被引用,这些项目没有任何问题,因此看起来不是这些问题.
到目前为止,我已经尝试删除suo文件,Rebuild All,从解决方案中卸载和重新加载项目,删除和读取引用的程序集.没有任何效果.
我只是通过执行以下操作来构建它:
有问题的项目的属性中有许可证文件.删除文件后(不再需要),项目能够成功构建.所以看起来这就是罪魁祸首.
(对于绝望的故障排除者)
在" 解决方案资源管理器"窗口中,如果向下查看引用列表并在" 属性"窗口中选中每个引用列表,则查看属性Strong Name = False指向潜在问题.
我已经从“我的项目”文件夹中删除了许可证文件,然后再次重新构建,它已成功构建。