我的類型提供程序使用一些本機x64庫。我使用
anyCpu
x64標誌編譯了我的類型提供程序庫。在Visual Studio中使用x64庫的F#類型提供程序
現在,當我嘗試從Visual Studio中的另一個項目的IntelliSense加載我喜歡的類型提供給了我以下錯誤:
The type provider '...my type provider...' reported an error: An attempt was made to load a program with an incorrect format (Exception from HRESULT: 0x8007000B
只是要清楚,我得到這個錯誤不運行任何代碼,只需通過在Visual Studio中註冊類型提供程序。
當我嘗試從32位fsi
加載它時,我得到相同的錯誤。但是,當我嘗試fsianycpu
或64位fsi
它工作正常。我在fsi
中獲得我的類型和自動完成。
我猜這是因爲VS自己是x86,IntelliSense /靜態代碼分析也是x86,在某些時候他們嘗試加載依賴x86 lib和錯誤彈出的類型提供程序代碼。
不幸的是,庫只支持x64。
有沒有什麼辦法讓這項工作一起工作?
如果您的提供者使用本機64位庫,那麼它不應該被編譯爲AnyCPU。不是。當然,它不能在32位機器上運行(或者像Visual Studio一樣在32位程序中運行)。 –
你是對的,它應該被認爲是64位。 – Klark