这是一个经典问题,有许多解决方案描述。然而,它们似乎都不适用于我。
我正在使用Report.NET库在SharePoint解决方案中。将Reports.dll添加为引用并编译会导致错误信息“程序集生成失败 - 引用的程序集'Reports'没有强名称。”然而,我的项目在项目属性中链接了key.snk密钥文件。因此,我尝试按照其他地方描述的步骤对dll进行反汇编、签名和重新组装:
我最终得到了一个新的Reports.dll文件,时间戳为现在。将其作为引用添加到我的项目中并进行构建,但是仍然收到与之前相同的错误消息。 "Reports" 引用的属性显示 "强名称:False"。
不要因为遇到一点麻烦而气馁,我尝试使用强名称工具重新签名程序集:
值得注意的是,在进行反编译/签名/重新组合之前运行 SN 实用程序会失败,并显示错误信息“Reports.dll 不代表强名称程序集”。
然而,在进行反编译/签名/重新组合后再运行它时,将其重新添加到 Visual Studio 时仍然会出现原始错误消息。
我正在使用Report.NET库在SharePoint解决方案中。将Reports.dll添加为引用并编译会导致错误信息“程序集生成失败 - 引用的程序集'Reports'没有强名称。”然而,我的项目在项目属性中链接了key.snk密钥文件。因此,我尝试按照其他地方描述的步骤对dll进行反汇编、签名和重新组装:
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>ildasm Reports.dll /out:Reports.il
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>ilasm Reports.il /dll /resource=Reports.res /key=..\key.snk
<output removed for brevity>
Class 95
Class 96
Method Implementations (total): 1
Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
Writing PE file
Signing file with strong name
Operation completed successfully
我最终得到了一个新的Reports.dll文件,时间戳为现在。将其作为引用添加到我的项目中并进行构建,但是仍然收到与之前相同的错误消息。 "Reports" 引用的属性显示 "强名称:False"。
不要因为遇到一点麻烦而气馁,我尝试使用强名称工具重新签名程序集:
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\MyProj
\dll>sn -R Reports.dll ..\key.snk
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly 'Reports.dll' successfully re-signed
值得注意的是,在进行反编译/签名/重新组合之前运行 SN 实用程序会失败,并显示错误信息“Reports.dll 不代表强名称程序集”。
然而,在进行反编译/签名/重新组合后再运行它时,将其重新添加到 Visual Studio 时仍然会出现原始错误消息。