2010-04-29 56 views
2

我正在使用SQLite進行單元測試,並可能將其用作本地開發/分段的數據庫。特定於引用平臺的System.Data.SQLite

System.Data.SQLite基本上有兩個版本:x86和x64。正確的應該用於特定的平臺。

我有64位的Win7,團隊中的其他人可能會使用32位操作系統。目前還不知道服務器的平臺。

如果我在64位平臺上使用32位版本的程序集,我會得到BadImageFormatException: Could not load file or assembly 'System.Data.SQLite'。我相信嘗試在32位平臺上使用64位彙編也會發生類似的情況。

所以我的問題是什麼是最好的方式參考SQLite程序集,使它不依賴於平臺和人們可以使用它?

可以在64位平臺上使用32位版本的程序集(也許在某處有一個開關?)。

+0

可能的重複http://stackoverflow.com/questions/2728189/have-visual-studio-copy-x64-dll-or-x86-dll-when-building-ac-project – 2010-04-29 01:59:51

回答

0

如果它安裝到GAC中,那麼您只需引用該組件,系統將選擇正確的一個。 (我過去曾使用過構建系統,在構建時將正確的版本複製到「deploy」文件夾中,這些日子裏,我所有的東西做的是64位,所以這不是什麼大不了的)。

或者,您可以將應用程序構建爲x86,然後僅使用32位版本。在項目屬性中的「生成」選項卡上,將「平臺目標」設置爲「x86」。您只需要使用可執行文件執行此操作:DLL仍然可以是AnyCPU。

+0

我已經從GAC引用它但它使用32位版本的程序集。 – 2010-04-29 00:58:52

+0

好的。我將不得不接受聽起來像解決方案的答案。它不會像我期望的那樣工作。現在我已經將我的平臺設置爲x86,並且始終使用x86版本。 – 2010-05-02 23:34:14