簡體   English   中英

應用程序的強名稱驗證失敗

[英]Strong name validation failed for application

我創建了使用C:\\ Program Files(x86)\\ Reference Assemblies \\ Microsoft \\ WindowsPowerShell \\ 3.0 \\ System.Management.Automation.dll的ac#應用程序

我還將dll復制到我的bin文件夾中。 它工作正常,但如果我將bin文件夾復制到另一台機器並運行可執行文件我得到此錯誤:

************** Exception Text **************
System.IO.FileLoadException: Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)
File name: 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A)

注意:我根本沒有簽署組件。 此外,我不想通過修改注冊表項來禁用安全性。 我只是想妥善解決它。 任何想法如何解決這個問題,而無需全局注冊DLL?

更新:我嘗試將整個visual studio項目復制到另一台機器上。 當它在Windows 8上工作時,它不能在Windows 7上運行。

您可以通過更改刪除app.confg中對程序集的強引用

System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

System.Management.Automation

但我建議使用Fuslogvw (可以將其復制到目標服務器以及支持dll)獲取有關確切錯誤的更多信息。

這將顯示應用程序探測dll的確切位置以及導致問題的原因。 也許你需要添加另一個dll到你的bin文件夾,或者GAC在另一個dll上贏了。

我認為問題在於我的方式只適用於Windows 8,因為它有這個dll的新版本。 要使它在Windows 7上運行:

  • 修改csproj文件以獲得如此引用:

<Reference Include =“System.Management.Automation”/>

  • 將身份驗證代碼更改為此

    SecureString securePwd = new SecureString(); pass.ToCharArray()。ToList()。ForEach(p => securePwd.AppendChar(p)); PSCredential credentials = new PSCredential(username,securePwd); string shellUri =“ http://schemas.microsoft.com/powershell/Microsoft.PowerShell ”; WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false,host,5985,“/ wsman”,shellUri,credentials,100000); // timeout以毫秒為單位

[如果在測試二進制文件期間遇到問題,請使用此解決方案]我遇到與作者相同的問題。 我使用snremove.exe刪除了system.management.automation.dll上的強名稱

snremove -r。\\ system.management.automation.dll(並刪除用於測試的所有二進制文件的強名稱。) http://www.nirsoft.net/dot_net_tools/strong_name_remove.html

它現在運作良好。 我這樣做只是因為我不想在測試之前檢查我的二進制文件。 簽入后,我的二進制文件由構建簽名,我不必擔心強大的命名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM