我将在这里提供相当多的背景信息,因为我认为这有助于解释我为什么选择这条路线(希望意味着如果有人有其他建议,他们知道我的最终目标是什么)。
我们有一个 C# winforms 应用程序,我们想在其中使用来自 Microsoft https://developer.microsoft.com/en-us/microsoft-edge/webview2/的新 WebView2 控件
快速总结一下,微软的这个新的 web 视图控件与旧的不同,因为它不期望已经安装了幕后的浏览器/运行时。WebView2 使用自己的自定义 Edge Chromium Runtime,基于新的 Edge Chromium。这意味着即使安装了 Edge Chromium 浏览器也不能算作安装了运行时。
所以微软提供了3种安装运行时的方法。
- 一个小的引导程序常青安装程序,您包含在您的应用程序中,然后下载并安装运行时安装程序并安装它,然后使其自身保持最新
- 完整的常青安装程序,以防您需要能够在离线时安装
- 一组固定版本的二进制文件
选项 1 和 2 都需要提升才能运行 - 这对我们来说是一个障碍,我们的应用程序不需要安装提升。
所以剩下3个。
3 的最终目标是运行时的所有二进制文件都与我们的应用程序捆绑在一起,我们只需将 WebView2 配置指向使用应用程序文件夹中的运行时 exe。简单对。
那么这是我的问题。
我不希望 git repo 中的那些二进制文件.. 所以一个 nuget 包听起来很明智。只需使用内容文件夹将大量二进制文件复制到输出文件夹并将它们作为资源嵌入即可。
我遇到的问题是 Microsoft 提供的二进制文件是特定于处理器架构的(我关心的是 x86 和 x64)。
我正在努力寻找如何实现这一目标。
我查看了此博客https://devblogs.microsoft.com/nuget/nuget-contentfiles-demystified/ ,其中指出我可以为特定语言和 .net 运行时特定文件创建文件夹..但没有提及处理器架构。
有谁知道是否可以从 nuget 包中获得特定于体系结构的内容文件?或者,如果有更好的方法来做到这一点。
谢谢