我在VS 2015和F#4.0(4.4.0.0)中進行了相當長時間的開發。使用VS 2017時無法解析對程序集的依賴關係FSharp.Core 4.4.1.0
隨着VS 2017的發佈,我想在最新的VS開發工作中打開解決方案,但仍然保留VS 2015,F#4.0,.NET 4.5.2的項目。構建服務器也必須使用VS 2015一段時間。
據我記得,這種情況在早期的VS版本升級中沒有問題,但是當時我不認爲我使用了F#。
我打開解決方案並嘗試編譯。我在C#應用程序項目中遇到此錯誤。 (還有其他C#應用程序,並且至少有一個引用F#庫)。
未知的生成錯誤,'無法解析依賴程序集'FSharp.Core,Version = 4.4.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a '因爲它沒有被預加載。在使用ReflectionOnly API時,必須通過ReflectionOnlyAssemblyResolve事件按需預加載或加載相關程序集。
解決方案中的所有F#項目都是4.0(4.4.0.0)。我再次檢查。
這是怎麼發生的?
上述問題發生在使用F#庫的C#程序中。今天,我在VS 2017中遇到了一個使用F#4.0.0.0的F#程序的類似問題。沒有編譯錯誤,只有上面的運行時錯誤。正如我在這裏解釋的那樣,我使用bindingRedirect解決了這個問題。我不明白爲什麼這隻發生在我的一些程序中。 –
似乎我在調試過程中無法檢查表達式。添加手錶顯示錯誤:錯誤CS1705:具有標識'x'的程序集'x'使用'FSharp.Core,版本= 4.4.1.0,文化=中立,PublicKeyToken = b03f5f7f11d50a3a',其版本高於引用程序集'FSharp'。 Core'與身份'FSharp.Core,Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a' – Nuzzolilo
太棒了!這對我來說就像一個魅力。謝謝! –