標籤:
{"未能負載檔案或程式集“System.Data.SQLite, Version=1.0.97.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一個依賴項。試圖載入格式不正確的程式。"}
出現情況:
原來程式編譯時間用的是vs2008在win 7 32系統內容下編譯的。
把程式源碼copy到win 8 64位 在vs2013下調試時出現如下錯誤。
未處理System.BadImageFormatException
Message=未能負載檔案或程式集“System.Data.SQLite, Version=1.0.97.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一個依賴項。試圖載入格式不正確的程式。
Source=Model
FileName=System.Data.SQLite, Version=1.0.97.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
FusionLog==== 預綁定狀態資訊 ===
日誌: DisplayName = System.Data.SQLite, Version=1.0.97.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
(Fully-specified)
日誌: 初始 PrivatePath = NULL
調用程式集: Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。
===
日誌: 此綁定從 default 載入上下文開始。
日誌: 正在使用應用程式設定檔: C:\Users\檔案路徑\bin\Debug\項目名稱.vshost.exe.Config
日誌: 使用 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config 的電腦設定檔。
日誌: 策略後引用: System.Data.SQLite, Version=1.0.97.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
日誌: 試圖下載新的 URL file:///C:/檔案路徑/bin/Debug/System.Data.SQLite.DLL。
錯誤: 未能完成程式集的安裝(hr = 0x8007000b)。探測終止。
StackTrace:
在 Model.SysOperator.GetSysOperatorByCondition(String condition)
在 Model.SysOperator.UserLogin(String EmpAcct, String EmpPwd, String StoreId) 位置 c:\Users\\Model\SysOperator.cs:行號 104
在 TradingSystem.LoginForm.UserLogin(String username, String password, String storeId, HtmlElement txtUserName, HtmlElement txtPwd) 位置 c:\LoginForm.cs:行號 82
在 LoginForm.<>c__DisplayClass1.<btnLogin_Click>b__0() 位置 c:\LoginForm.cs:行號 73
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
InnerException:
原因:
SQLite下載的平台類型不對!!調試出錯用的是 64 位WIN8 系統 ,而SQLite下載的是X86 32位的!?
解決方案:
在VS2013中的“項目“裡的“屬性”裡的“產生”-》目標平台設定為x86
Sqlite平台類型導致的錯誤情況