MathNet Numerics需要FsUnit.CustomMatchers才能成功构建。超出选项范围

时间:2016-02-26 17:59:32

标签: f# visual-studio-2015 nunit mathnet fsunit

尝试使用MathNet Numerics Visual Studio Community 15MathNet.Numerics.sln构建Could not resolve this reference. Could not locate the assembly "FsUnit.CustomMatchers". Could not resolve this reference. Could not locate the assembly "FsUnit.NUnit". Could not resolve this reference. Could not locate the assembly "nunit.framework". 的最新版本,其Successfully installed 'NUnitTestAdapter.WithFramework 2.0.0' to UnitTests Successfully installed 'FSharp.Core 3.1.2.5' to FSharpUnitTests Successfully installed 'NUnit 3.0.1' to FSharpUnitTests Successfully installed 'FsUnit 2.0.0' to FSharpUnitTests 需要安装DLL的单元测试。

FsUnit.CustomMatchers

因此,在Visual Studio中使用NuGet可以成功安装以下内容。

..\..\packages\test\FsUnit\lib\FsUnit.CustomMatchers.dll

剩下的唯一DLL是

test

我无法找到。

GitHubpackages,但A unique overload for method 'IsTrue' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: Assert.IsTrue(condition: Nullable<bool>, message: string, [<ParamArray>] args: obj []) : unit, Assert.IsTrue(condition: bool, message: string, [<ParamArray>] args: obj []) : unit 下没有Microsoft.VisualStudio.QualityTools.UnitTestFramework 目录。

如何正确解决此问题?
我是否需要DLL?如果可以,它在哪里可以找到?
我是否需要进行手动代码修复? 我是否需要更新提示?

TLDR;

如果我构建没有丢失的DLL,则基本错误是:

open Microsoft.VisualStudio.TestTools.UnitTesting

可以通过安装

来解决
Assert.IsTrue(condition: bool, message: string, [<ParamArray>] args: obj []) : unit

并添加

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

具有

的签名
FsUnit.CustomMatchers

但这不正确,因为它没有安装正确的DLL(unit tests vs udp),而且从过去的F#单元测试经验中我知道可以通过执行误报的字幕这样

编辑:

成功安装后,我想知道记录的位置。

请参阅:hint

  

完全自动化的构建,包括<asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" StaticEnableDefaultPopOutImage="false" OnMenuItemClick="Menu1_MenuItemClick" > <Items> <asp:MenuItem ImageUrl="" Text="Driver" Value="0" Selected="true"></asp:MenuItem> <asp:MenuItem Text="|" Value="0" Selectable="false"></asp:MenuItem> <asp:MenuItem ImageUrl="" Text="Vehicle" Value="1"></asp:MenuItem> <asp:MenuItem Text="|" Value="2" Selectable="false"></asp:MenuItem> <asp:MenuItem ImageUrl="" Text="SOS" Value="3"></asp:MenuItem> <asp:MenuItem Text="|" Value="4" Selectable="false"></asp:MenuItem> <asp:MenuItem ImageUrl="" Text="ACE" Value="5"></asp:MenuItem> <asp:MenuItem Text="|" Value="6" Selectable="false"></asp:MenuItem> </Items> <StaticSelectedStyle BackColor="Silver" /> </asp:Menu> ,文档和   api引用,NuGet和Zip包正在使用FAKE。

1 个答案:

答案 0 :(得分:2)

该解决方案正在使用F#包系统Paket。不是NuGet。它还使用FAKE,即F#构建系统。

要恢复,配置和构建所有内容,只需运行build.cmd(如果您在* NIX上,则为build.sh

路径的/test/部分来自于#34; dependency group&#34;这是Paket的一项功能。简而言之,它允许您按照某些标准对依赖项进行分组,然后有选择地还原它们而不是“#34;所有依赖项,始终&#34;。

这个特殊的项目,以其paket.dependencies file来判断,定义了四个组 - 测试,构建,数据和基准。我可以猜到&#34; Build&#34;具有常规构建所需的依赖关系,并且&#34;测试&#34;具有测试所需的依赖性。

要使用Paket恢复依赖关系,您需要下载Paket,然后运行paket install

为了简化下载部分,该解决方案包括.paket/paket.bootstrapper.exe的引导程序,您可以运行该引导程序以下载最新的Paket。这是一个标准的事情,它是在您通过运行paket init初始化新项目时添加的。

整个过程(即运行引导程序然后运行Paket本身)在build.cmdbuild.sh文件中编码,然后运行FAKE。这就是为什么我建议您只运行build.cmd