【发布时间】:2014-03-12 21:31:40
【问题描述】:
【问题讨论】:
-
您无需清空文件名。没有人关心这个文件叫什么,这让帮助你变得更加困难。
标签: .net config verification strongname
【问题讨论】:
标签: .net config verification strongname
尝试将其添加到 regestry:
操作系统 x32:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
操作系统 x64:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
并将其添加到您的 Web.config:
<system.web>
<hostingEnvironment shadowCopyBinAssemblies="false" />
</system.web>
【讨论】:
Web.config 更改是我尝试过的其他答案错过的重要一步——感谢您提出来。
要对您机器上的所有程序集禁用强名称验证,您可以运行:
sn.exe -Vr *
来自 VS201* 的开发人员命令提示符
【讨论】:
这是我收到的一个例外:
Error Type: System.IO.FileLoadException
Error Message: Could not load file or assembly 'MyAssemblyName, Version=5.1.0.0, Culture=neutral, PublicKeyToken=30b439e30eee46b4' or one of its dependencies.
Strong name validation failed. (Exception from HRESULT: 0x8013141A)
这是一个解决方案,我可以在完全签名的服务中对其进行测试时禁用特定程序集的强名称验证:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\MyAssemblyName,30b439e30eee46b4]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\MyAssemblyName,30b439e30eee46b4]
您必须在注册表中创建这些新键,键下没有值。您可以将这两行复制到 .reg 文件中,更改程序集名称及其 guid 并双击它以合并到注册表中。
注意:程序集名称是不带 .dll 扩展名的文件名,与异常中显示的完全相同。
然后重新启动您的应用/服务。
我认为上面用 * 而不是程序集名称的答案也应该有效。
【讨论】:
以下条目将起作用:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
【讨论】: