[英]C# Assembly Strong Name error although signed
尝试使用某些引用时,运行C#应用程序时遇到问题,引发以下错误:
无法加载文件或程序集“ My3rdPartyAssembly,版本= 1.0.0.0,区域性=中性,公共密钥令牌=空”或其依赖项之一。 需要一个全名程序集。 (来自HRESULT的异常:0x80131044)“
然后,我按照这个答案在有关程序集上签名。
我也可以通过Visual Studio和Sn确认我的DLL现在已经明确签名并具有强名称。
但是我看到两件事:
我对可能的原因一无所知。
谢谢。
事实证明,我能够解决它。 我正在更新第三方库(我要签名的程序集),以便它可以与我的.exe正常运行,但是它被替换为NuGet软件包中的未签名版本。
我将为名为WPFCustomMessageBox.dll的示例程序包提供说明。 按照ff。 更新程序包并将其反映在调试文件夹中的步骤:
cmd
。 一种。 这个从.dll中获取必要的文件
"C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.1 Tools\\x64\\Ildasm.exe" /all /out=WPFCustomMessageBox.il WPFCustomMessageBox.dll
湾 我不确定这是做什么的,但是它为下一个命令准备了文件。
"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Ilasm.exe" "WPFCustomMessageBox.il" /dll /resource="WPFCustomMessageBox.res" /key="publickey.snk"
C。 这个创建签名的.dll
"C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.1 Tools\\x64\\sn.exe" -R "WPFCustomMessageBox.dll" "pair.pfx"
我已经在向第三方程序集添加强名称的帮助下测试了此方法。 下次编译时,应该对以前未签名的.dll(已编译/复制到Debug文件夹)进行签名。 希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.