[英]FsUnit, NUnit references in an F# project
我在Visual Studio 2012中有一個解決方案。它包括兩個測試項目,一個在F#中,一個在C#中。 我已經將NUnit和FsUnit安裝為Nuget包。 安裝之后,對這些程序集的引用指向我的解決方案內的\\packages\\
文件夾中的dll
。 編譯解決方案后,引用在F#項目中發生更改,並指向我的C:\\Program Files (x86)\\
文件夾中安裝的NUnit和我的F#項目中的\\bin\\Debug\\FsUnit.NUnit.dll
。 在C#項目中,引用繼續指向packages文件夾。
該項目在Visual Studio中構建,測試運行良好。 當我在TeamCity中構建它時失敗,因為它在F#項目中找不到NUnit和FsUnit。
我編譯時為什么引用會改變的想法?
此外,為什么F#項目中的引用屬性與C#項目中的引用屬性相比包含的信息要少得多?
要關閉此問題以及將來參考, .fsproj
中的引用最初是
<Reference Include="FsUnit.NUnit, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null">
<Private>True</Private>
</Reference>
<Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<Private>True</Private>
</Reference>
按照Brian的建議,我將它們替換為下面的.csproj
中的那些
<Reference Include="FsUnit.NUnit, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\FsUnit.1.1.0.0\Lib\Net40\FsUnit.NUnit.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.2.6.0.12054\lib\nunit.framework.dll</HintPath>
</Reference>
這似乎是NuGet中的一個錯誤,只影響F#項目,然后僅在VS 2012中。您會注意到如果您使用NuGet升級到更新版本的NUnit或FSUnit,您的HintPath將再次被剝離.fsproj
文件。
http://nuget.codeplex.com/workitem/2149
請投票支持該問題,以便在VS 2012最終發布之前獲得一些關注!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.