我明白为什么System.Data.SQLite.dll提供32位和64位版本,我们不需要再深入讨论这个问题。 :)
然而,这种做法似乎让纯C#开发变得更加困难,需要做出3个选择。
仅支持32位,并强制管理程序集编译为x86,在32位或64位环境下运行并失去在64位环境下的优势。
仅支持64位,强制管理程序集编译为x64,在32位环境下无法运行,但能获得64位环境下的所有优势。
创建两个版本的程序集,一个编译为x86并使用32位SQLite,另一个编译为x64并使用64位SQLite。它防止使用"ANY"作为编译选项,并且不能轻松地将单个构建部署到任一类型。从开发角度来看,这不是太可怕,因为我们只需要两个项目。只有一个是C#代码的官方版本,另一个将使用“链接”到另一个中的代码。这仅用于编译目的。这样做之后,我们仍然需要管理两个输出进行部署。
总之,我只是想确认上述是唯一的正确选择。
如果有其他选择,请告诉我。特别是是否存在一种方法可以获得单个C# DLL,可以编译为“ANY”,这样它可以根据运行环境的不同利用32位或64位,并且仍然使用System.Data.SQLite.dll。