gpt4 book ai didi

c# - 如何处理 x86 与 x64 包

转载 作者:可可西里 更新时间:2023-11-01 03:11:07 25 4
gpt4 key购买 nike

我们使用 NuGet 来管理我们的第三方包。

我们还必须构建 x86x64 版本。

我们现在依赖于 NuGet 包 (zeromq),它依赖于 C dll,因此具有 x86x64 版本。

在 Nuget 中搜索时,我只看到两个不同的项目(zeromq x64 和 zeromq x86),而不是一个统一的项目。

约束

我们在开发人员机器上的构建过程是在 visual studio 中选择适当的配置(即 Debug/x86、Release x64 等)并构建,因此我们使用的任何解决方案都必须适合 visual studio GUI(即 MSBuild 解决方案不会真正适合我们当前的工作流程)。

编辑

约束的附录....如果我们不能在 NuGet 中自动执行此操作,是否可以使用某种 powershell 预构建脚本来执行此操作?也就是说,如果我们知道我们正在构建 x86 版本,是否有一种方法可以 Hook NuGet,以便它使用 x86 包而不是 x64 包?

像这样管理 NuGet 包的正确方法是什么?

最佳答案

那么你有两种方法,

  • 创建您自己的 ZeroMQ 分支并关注 System.Data.SQLite.org实现 native 库预加载。然后您可以创建一个 NuGet 包而不是两个。

  • 为您的可执行文件创建两个项目(相同的源代码,只有两个项目文件)。一个用于 x86,另一个用于 x64。将 ZeroMQ 的 x86 包添加到您的 x86 包中,而将 ZeroMQ 的 x64 包添加到您的 x64 包中。它很丑陋,但 IHMO 它避免了在你的项目文件中进行条件处理(它很容易被任何错误的 MSBuild 解析器破坏)。

关于c# - 如何处理 x86 与 x64 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18446374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com