我有這個非常混淆的問題(可能)XUnit和一些Nuget包。我的解決方案由一個與此問題無關的C#項目和一個F#測試項目組成。XUnit和F#核心4.3.1在類庫中加載錯誤
測試項目是一個非常簡單的類庫項目,其中包含一個.fs文件,其中包含所有測試和幾個NuGet包,其中三個是(IMO)重要的:版本1.4.1.0中的fsUnitxUnit
,版本2.1中的XUnit
。 0和FSharp.Core
在版本4.0.0.1中。
問題是,當以下兩個條件成立時,測試總是失敗Could not load file or assembly FSharp.Core, Version=4.3.1.0
:被引用的NuGet FSharp.Core
的版本是4.0.0。[10]而該項目的類型是類庫。
當NuGet FSharp.Core
被手動降級到版本3.1.2.5,或者projet的類型被更改爲控制檯應用時,該異常不會被拋出,並且所有測試都按照他們應該的方式通過。
就好像這並不奇怪,它只能在Windows上進行。在Linux上(或者至少travis-cl(如here所示))在任何配置下都可以正常工作。
鏈接here正在測試回購。最後三個提交顯示哪些配置有效,哪些不可用。最後一個「同樣工作」的配置沒有適當的travis配置文件,但是同時適用於Windows和Travis(測試通過)。
聲明:我絕對是NuGet包的新手,所以我可能會錯過一些非常基本的東西。
好的,我明白了,但只有當項目的類型是類庫時,問題是如何發生的? – Petrroll
不確定。您是在Visual Studio 2013或更高版本中構建.exe文件,並且是否定位.NET 4.5.1?對於桌面/控制檯應用程序,Visual Studio將自動[添加綁定重定向](https://msdn.microsoft.com/en-us/library/2fc472t2(v = vs.110).aspx),如果它們是針對.NET 4.5編譯的.1 –
是的,這可能是。謝謝! :) – Petrroll