我正在開發一個ASP.NET應用程序,並試圖在我的64位win 7機器上使用64位驅動程序版本的ODBC,因爲部署服務器具有Windows Server 2008,它是自然在64位,因爲微軟決定不做一個32位版本afaik。Win 7和ODBC的64位
的第一個問題是一個System.Data.Odbc.OdbcException
「ERROR [IM014] [微軟] [ODBC驅動程序管理器]指定的DSN包含驅動程序和應用程序之間的結構不匹配」。儘管我正在開發一個64位操作系統,但編譯器似乎決定編譯32位。經過一些研究後,我將每個(自己的)程序集中的目標平臺更改爲x64。我使用的是NHibernate和Spring.Net,但是我讀了一些對於NHibernate來說64位沒有問題的地方。我沒有檢查Spring.Net。彙編開始了。
我收到了一些警告,說每個.net程序集都是爲另一個平臺而構建的,但我再次在某處讀到我可以忽略這些警告,並且應用程序應該運行得很好,因爲運行時(或編譯器?)會計算出正確的組裝。
因此,我立即測試了應用程序,並獲得System.BadImageFormatException
(錯誤格式)的獎勵。這又是一個關於32/64位問題的例外,雖然我的每個程序集都被編譯爲64位。
我慢慢開始討厭64位。認真。在具有64位驅動程序的64位服務器的64位操作系統上構建64位應用程序很困難嗎?
有沒有人有解決方案或有這方面的經驗?我發現了許多使用32位的解決方法,但這不是一個選項。它必須是一個64位解決方案。
不過我會繼續努力解決這個問題。我會在這裏寫下任何進展。
更新: Spring.Net似乎因爲組件「在運行時動態編譯爲本地機器架構」是在64位就好了。
不幸的是它是關於組件之間的兼容性(應用程序<-> 64位odbc驅動程序)而不是64位的東西。但我讀了32位模式,但我寧願想想那是我的最後一招。 – Robert 2011-02-01 19:55:25