2016-09-26 39 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]

相关问题