2014-02-13 58 views
6

如何通過配置.net框架或IIS或項目的配置禁用.Net強名稱驗證所有.Net程序集在系統中?如何禁用所有.Net程序集的強名稱驗證?

http://nvea.host56.com/up/726daf2c9ee0.png (點擊查看大圖)

+1

你並不需要空出你的文件名。沒有人關心該文件被稱爲什麼,這使得它更難以幫助你。 –

+0

請參閱http://social.msdn.microsoft.com/Forums/vstudio/en-US/e730f235-7a53-4695-9f78-162fcc5cedbd/how-to-skip-strong-name-verification-in-vs-2010 ?forum = csharpgeneral –

回答

2

下面的條目將工作:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,af24b530b87e22f1] 
+1

請務必明確提到註冊表項時需要做什麼。刪除它們?添加他們?改變他們? – JasonMArcher

+2

您想要將這些密鑰添加到註冊表中。最簡單的方法是運行powershell命令: reg ADD「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ StrongName \ Verification \ *,af24b530b87e22f1」 – andrew

3

這是我收到的異常:

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擴展名的文件名,完全如其在例外中所示。

然後重新啓動您的應用程序/服務。

我認爲上面的*代替程序集名稱的答案也可以。

7

嘗試在regestry添加:

OS X32:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1] 

OS 64:

[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> 
3

要禁用強名稱驗證爲您計算機上的所有組件可以運行:

sn.exe -Vr * 
從VS201開發人員命令提示符

*

相關問題