2016-09-26 90 views
2

一切適用於啓用了.NET Framework註冊表項AllowStrongNameBypass的計算機上。 但是,我們要求在我們的部署環境中禁用AllowStrongNameBypass具有強名稱二進制文件的CefSharp

我們需要有CefSharp.BrowserSubProcess.exe及其非託管依賴性Strong-Named(最好不用自己構建CefSharp)。

作爲測試,我們嘗試用ildasm.exe拆卸CefSharp.BrowserSubProcess.exe和使用ilasm.exe重新組裝,並使用sn.exe生成的密鑰給組件強名稱密鑰自己。不幸的是,這個失敗與MethodAccessException

是否有可用版本的CefSharp組件是強 - 命名還是解決此問題的方法?

+0

我安裝v51.0.0從的NuGet跑'SN-T 「[DLL]」'和dll的我檢查,包括'CefSharp.BrowserSubProcess。 exe「,名字很有名。如果你的版本沒有嘗試尋找爲什麼發生'MethodAccessException',我發現這篇文章是關於它的:http://stackoverflow.com/questions/10738008/accessing-newly-signed-third-party-dll-gives-error – dukedukes

+0

@dukedukes我在v51.0.0二進制文件中看到的是命令'sn.exe -Tp CefSharp.BrowserSubProcess.exe'顯示公鑰(我也可以用'ildasm'來查看)。儘管命令'sn.exe -vf CefSharp.BrowserSubProcess.exe'返回以下錯誤:'無法驗證程序集 - 強大的名稱驗證失敗,程序集'CefSharp.BrowserSubprocess.exe'。' – Fizz

+0

我試過了'sn -vf CefSharp .BrowserSubProcess.exe「,並且看到了相同的內容,但僅適用於正確驗證的32位,64位。我試過了sn.exe的32位和64位版本。一個選項可以使用CefSharp GitHub倉庫中提供的'CefSharp.snk'鍵對程序集進行辭職,然後對每個有此問題的程序集重複。 – dukedukes

回答

1

CefSharp似乎有一些無效的強命名程序集。正如@Fizz指出,在32位平臺下的CefSharp.BrowserSubProcess.exe的構建後步驟是造成這種情況的原因。

使用CefSharp GitHub倉庫中的CefSharp.snk項重新簽名問題程序集。用下面的命令就可以重新簽下他們:

sn.exe -R CefSharp.BrowserSubProcess.exe [CefSharp key]

相關問題