什么是VS 2015中的新类库(包)

时间:2016-02-11 11:36:15

标签: visual-studio-2015 asp.net-core

我一直在尝试使用PL,BLL和DAL进行示例3层应用程序,现在我正在进行一些单元测试。我准备将BLL引用到我的测试项目中,但突然之间它不会允许它。我发现这个类库与常规类库不同。

所以,现在,我不知道是否应该将其替换为常规类库或继续使用新的(包)。什么适合这种情况?可以说这个3层程序是一个云应用程序。

或许正确的问题是:

  1. 旧班级图书馆和新班级图书馆之间的区别是什么?
  2. 什么时候合适?我无法在谷歌上找到明确的答案。
  3. 您是否可以使用当前的MS Test进行单元测试?

2 个答案:

答案 0 :(得分:3)

如果您要使用asp.net-core,我建议您坚持使用较新的类库(Package),除非您有理由在不使用DNX编译/执行的其他项目中使用相同的库。 / p>

  1. Class Library (.csproj)Class Library Package (.kproj)。这两类项目之间的最大区别在于类库(Package)将使用文件project.json和DNX来编译,执行和打包库,而标准类库(.csproj)使用.net用于编译和执行库.dll文件的框架。

    附注:包项目(.kproj)将自动创建一个NuGet包(其中作为类库(.csproj),您必须手动构建NuGet包)。

  2. 您需要知道的主要事情是,您可以在Class Library (.csproj)中引用Class Library (Package) (.kproj)而不是相反,因为DNX。所以这意味着目前所有单元测试库都不能与asp.net核心协同工作。解决这个问题的一个好方法是在XUnit中使用Class Library (Project) (.kproj)。如果此库在不支持DNX的其他项目之间共享(例如,在较旧的MVC5项目和新的ASP.NET Core项目之间),则无法使用类库包.kproj并且必须符合标准类库.csproj项目。

  3. 请参阅此答案https://stackoverflow.com/a/31751864/1284637如何使用asp.net核心进行单元测试。如2中所述,app.net-core目前不支持单元测试库,这意味着MSTest也无法工作。

  4. 我希望这有助于为您解决问题。

答案 1 :(得分:2)

Nick De Beer完美地回答了1和2(我的恭维@Nick De Beer)。

但就3而言,截至2015年12月,还有一个名为MSTest.Runner.Dnx的NuGet软件包,它针对DNX,特别是针对MSTest。您可以在此处阅读如何在DNX项目中进行设置:https://dannyvanderkraan.wordpress.com/2016/03/07/asp-net-core-1-0s-dnx-and-mstest/