[英]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.