SQLite与VS2012和.NET 4.5 – 任何CPU构建
我已经尝试查看相关问题的答案,但没有找到任何不是几年的东西(不确定它们是否仍然是首选答案)或完全回答我的问题。
要求:
- 我正在开发一个在32位和64位计算机上运行的C#应用程序。 我的客户端不想基于x86和x64创建两个不同的版本。
- 我们使用的是SQLite,VS2012和.NET 4.5。 以下是SQLite的可用DLL: http : //system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
不幸的是,DLL分为32位或64位版本。
问题:
- 是否可以包含两个DLL并根据处理器切换它们? 我该怎么做呢?
- 我已经阅读了一些关于GAC的内容,从我读过的内容来看,它是一个本地解决方案。 要为我的应用程序实现这一点,我必须在每次安装时将DLL安装到GAC,对吗?
- 我是否可以强制程序在64位环境中以32位模式运行,从而失去64位优势但能够在两个环境中运行我的程序而没有问题?
我不确定的一些可能的答案对我的情况有用:
- 查看最新的答案(第三个下来): 64位SQLite.dll和任何CPU
- 2012年的答案似乎很有希望,但对该答案的第一个评论破坏了我的希望: 在32位和64位C#世界中使用System.Data.SQLite的选项
是。 只需使用NuGet包System.Data.SQLite 。 它会将x86和x64子目录安装到您的项目中,并在编译时进入您的bin。 32位和64位互操作DLL被复制到那些并在运行时根据您的CPU适当选择。 因此,您选择“任何CPU”进行构建,并可以在32或64位Windows上运行您的应用程序。
- ReactiveUI 5.0.2中缺少ReactiveAsyncCommand
- 如何在.NET / C#中创建带尾随点(。)的文件夹?
- WPF树视图,如何更改缩进
- 安装文件的位置 – Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5
- 在同一个具有相同名称的合同中不能有两个操作(Async和Non)
- C#.NET 4.5中的JavaScript解析器和分析器
- ‘await’运算符只能与异步lambda表达式一起使用
- 为什么在Parallel.ForEach中每个线程多次调用localInit Func
- SmtpClient.SendMailAsync方法是否安全线程?