两台机器..NET 3.5和VS 2008 VC++ SP1可再发行组件都有
一个使用两个签名DLL的exe,一个在C++/CLI中,另一个在C#中
exe在一台机器上加载并运行良好.
另一方面,我在C++可执行文件中得到"强名称验证失败"(HRESULT 0x8013141A)
有任何想法吗?
Buz*_*zzy 26
以管理员身份打开命令提示符并输入以下命令:
reg DELETE "HKLM\Software\Microsoft\StrongName\Verification" /f
reg ADD "HKLM\Software\Microsoft\StrongName\Verification\*,*" /f
reg DELETE "HKLM\Software\Wow6432Node\Microsoft\StrongName\Verification" /f
reg ADD "HKLM\Software\Wow6432Node\Microsoft\StrongName\Verification\*,*" /f
Run Code Online (Sandbox Code Playgroud)
Ada*_*abo 14
以管理员身份打开命令提示符并输入以下命令:
"C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\sn.exe"-Vr <dllpath>
请注意该参数区分大小写.有更多详细信息的来源:http://blogs.msdn.com/b/keithmg/archive/2012/03/20/strong-name-validation-failed-exception-from-hresult-0x8013141a.aspx
Ric*_*ein 13
您必须在64位计算机上使用64位版本的sn.exe.(C:\ Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\sn.exe)
代码是否在"开发"机器上运行,您可能在某个阶段运行"sn.exe -Vr AssemblyName.dll",这将允许您使用延迟签名的程序集,就像它已完全签名一样.将延迟签名的程序集传输到另一台计算机并运行它时,它将无法通过强名称验证,因为它未完全签名.
小智 7
如果有人找不到 64 位版本sn.exe,请检查此处:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\sn.exe
小智 5
较新版本的 Visual Studio 中缺少 SN.EXE。在Visual studio 2012中,我们必须使用“Visual studio 2012的开发人员命令提示符”。然后运行命令“sn”。
语法: sn -Vr *,2d58152b8e842be2
其中“2d58152b8e842be2”是错误消息中显示的公钥令牌。不知何故,仅此一点并没有解决我的问题。
就我而言,我遇到了同样的问题,Visual Studio 2015并且已经签署了大会。
我通过以下方式修复了该问题:右键单击导致问题的项目->“属性”->“构建”->更改“平台目标”字段的值。
我必须将其从更改为Any CPU,x86但是我想在项目功能和失败的库中,应将其值更改为x64。
| 归档时间: |
|
| 查看次数: |
52545 次 |
| 最近记录: |