Nuget 包将文件添加到输出文件夹,其中包含针对不同架构的不同文件

问题描述

我将在这里提供相当多的背景信息,因为我认为这有助于解释我选择这条路线的原因(希望这意味着如果有人有其他建议,他们知道我的最终目标是什么)。

我们有一个 C# winforms 应用程序,我们想在其中使用来自 Microsoft https://developer.microsoft.com/en-us/microsoft-edge/webview2/ 的新 WebView2 控件https://devblogs.microsoft.com/nuget/nuget-contentfiles-demystified/

快速总结一下,来自微软的这个新的 web 视图控件与旧的不同,它不希望已经安装了幕后的浏览器/运行时。 WebView2 使用自己的自定义 Edge Chromium Runtime,基于新的 Edge Chromium。这意味着即使安装了 Edge Chromium browser 也不算安装了运行时。

所以微软提供了 3 种方式来安装运行时。

  1. 一个小型的引导程序常绿安装程序,包含在您的应用程序中,然后下载并安装运行时安装程序并安装它,然后使其自身保持最新
  2. 完整的常青安装程序,以防您需要离线安装
  3. 一组固定版本的二进制文件

选项 1 和 2 都需要提升才能运行 - 这对我们来说是一个障碍,我们的应用程序不能要求安装提升。

这样我们就剩下 3 个了。

3 的最终目标是运行时的所有二进制文件都与我们的应用程序捆绑在一起,我们只需将 WebView2 配置指向使用我们应用程序文件夹中的运行时 exe。简单的权利。

这是我的问题。

我不想在 git repo 中使用那些二进制文件..所以 nuget 包听起来很合理。 只需使用内容文件文件夹将加载的二进制文件复制到输出文件夹并将它们作为资源嵌入。

我遇到的问题是 Microsoft 提供的二进制文件是特定于处理器架构的(x86 和 x64 是我关心的)。

我正在努力寻找如何实现这一目标。

我看了这个博客 Guru Stron's answer 其中指出我可以为特定于语言的文件和特定于 .net 运行时的文件创建文件夹......但没有提到处理器架构。

有谁知道是否可以从 nuget 包中获得特定于架构的内容文件?或者如果有更好的方法来做到这一点。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)