【问题标题】:SQLite with VS2012 and .NET 4.5 -- ANY CPU Build带有 VS2012 和 .NET 4.5 的 SQLite——任何 CPU 构建
【发布时间】:2013-10-27 21:28:34
【问题描述】:

我尝试查看相关问题的答案,但没有找到任何几年前的内容(不确定它们是否仍然是首选答案)或完全回答我的问题。

要求:

不幸的是,这些 DLL 分为 32 位或 64 位版本。

问题:

  • 是否可以同时包含 DLL 并根据处理器切换它们?我该怎么做?
  • 我读过一些关于 GAC 的文章,从我读到的内容来看,这是一个本地解决方案。要为我的应用程序实现这一点,我必须在每次安装时将 DLL 安装到 GAC,对吗?
  • 是否可以强制程序在 64 位环境中以 32 位模式运行,从而失去 64 位的优势,但能够在两种环境中运行我的程序而不会出现问题?

一些我不确定是否适合我的情况的可能答案:

【问题讨论】:

  • 您是在构建 WinRT(“Metro”)应用还是桌面应用?

标签: c# sqlite visual-studio-2012 .net-4.5


【解决方案1】:

是的。只需使用 NuGet 包System.Data.SQLite。它会将 x86 和 x64 子目录安装到您的项目中,并在编译后安装到您的 bin 中。 The 32 bit and 64 bit interop DLLs are copied into those and selected appropriately at runtime based on your CPU.因此,您构建时选择了“任何 CPU”,并且可以在 32 位或 64 位 Windows 上运行您的应用程序。

【讨论】:

  • 非常感谢,很高兴 nuget 创建了这个,因为 SQLite 拆分了他们的 DLL。是否可以使用此安装 VS2012 设计组件?不是必需品,但会很好。
  • 不了解设计组件。我早就放弃了这些。澄清。不是 NuGet 提出来的。 NuGet.org 托管它,但创建包的是 sqlite.org 的人。
  • 哦,我明白了。我在其他地方看到过有关 nuget DLL 的信息并认为是错误的,很高兴看到 sqlite 开发人员正在简化混合模式。
  • “并且,编译后,进入你的 bin” - 这似乎不太正确。当我在我的项目中安装该 NuGet 包时,找不到 x86/x64 子文件夹中的 DLL(即使我将文件设置为在编译时复制,这 not 也不会自动发生) .
  • 这很奇怪。我没有经历过。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
相关资源
最近更新 更多