具有强命名二进制文件的 CefSharp
CefSharp with Strong-Named binaries
在启用了 .NET Framework 注册表项 AllowStrongNameBypass
的计算机上一切正常。
但是,我们要求在部署的环境中禁用 AllowStrongNameBypass
。
我们需要 CefSharp.BrowserSubProcess.exe
及其非托管依赖项强命名(最好不要自己构建 CefSharp)。
作为测试,我们尝试通过使用 ildasm.exe
反汇编 CefSharp.BrowserSubProcess.exe
并使用 ilasm.exe
和使用 [=16= 生成的密钥重新组装来自己为程序集提供强名称密钥].不幸的是,这失败了MethodAccessException
。
是否有 CefSharp 的可用版本,其中程序集是强命名的或解决此问题的方法?
CefSharp 似乎有一些无效的强命名程序集。正如@Fizz 指出的,在 32 位平台下 CefSharp.BrowserSubProcess.exe
的 post 构建步骤是造成这种情况的原因。
使用 CefSharp GitHub 存储库中可用的 CefSharp.snk 密钥重新签署有问题的程序集。您可以使用以下命令重新签名:
sn.exe -R CefSharp.BrowserSubProcess.exe [CefSharp key]
在启用了 .NET Framework 注册表项 AllowStrongNameBypass
的计算机上一切正常。
但是,我们要求在部署的环境中禁用 AllowStrongNameBypass
。
我们需要 CefSharp.BrowserSubProcess.exe
及其非托管依赖项强命名(最好不要自己构建 CefSharp)。
作为测试,我们尝试通过使用 ildasm.exe
反汇编 CefSharp.BrowserSubProcess.exe
并使用 ilasm.exe
和使用 [=16= 生成的密钥重新组装来自己为程序集提供强名称密钥].不幸的是,这失败了MethodAccessException
。
是否有 CefSharp 的可用版本,其中程序集是强命名的或解决此问题的方法?
CefSharp 似乎有一些无效的强命名程序集。正如@Fizz 指出的,在 32 位平台下 CefSharp.BrowserSubProcess.exe
的 post 构建步骤是造成这种情况的原因。
使用 CefSharp GitHub 存储库中可用的 CefSharp.snk 密钥重新签署有问题的程序集。您可以使用以下命令重新签名:
sn.exe -R CefSharp.BrowserSubProcess.exe [CefSharp key]