簡體   English   中英

FsUnit,NUnit在F#項目中引用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM