3

我在 Visual Studio 2012 中有一个解决方案。它包括两个用于测试的项目,一个在 F# 中,一个在 C# 中。我已将 NUnit 和 FsUnit 安装为 Nuget 包。安装后,对这些程序集的引用指向在我的解决方案内的文件夹中dll找到的 ' 。\packages\编译解决方案后,F# 项目中的引用发生变化,并指向安装在我的C:\Program Files (x86)\文件夹和\bin\Debug\FsUnit.NUnit.dll我的 F# 项目中的 NUnit。在 C# 项目中,引用一直指向包文件夹。

该项目在 Visual Studio 中构建,测试运行良好。当我在 TeamCity 中构建它时,它失败了,因为它在 F# 项目中找不到 NUnit 和 FsUnit。

任何想法为什么我编译时参考会发生变化?

此外,与 C# 项目中的属性相比,为什么 F# 项目中引用的属性包含的信息要少得多?

4

2 回答 2

2

.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>

.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>
于 2012-06-22T17:46:43.370 回答
2

这似乎是 NuGet 中的一个错误,仅影响 F# 项目,然后仅影响 VS 2012。您会注意到,如果您曾经使用 NuGet 升级到更新版本的 NUnit 或 FSUnit,您的 HintPaths 将再次被剥离.fsproj文件。

http://nuget.codeplex.com/workitem/2149

请为该问题投票,以便在 VS 2012 最终发布之前得到一些关注!

于 2012-06-22T21:39:34.210 回答