我在VS 2015中创建了一个ASP.NET核心Web应用程序。添加单元测试复选框可用于ASP.NET 4.x模板,但是当我选择ASP.NET 5模板时灰了。无论如何我试图创建项目,计划添加我自己的单元测试。
我在解决方案中添加了另一个项目,但我无法将这两个项目联系起来。当我右键单击UnitTest项目的引用并点击 Add Reference 时,我可以看到原始项目 as an option.
但是当我勾选方框并点击“确定”时,我会得到一个dialog box,上面写着"对PangolinWeb'无法添加。装配必须有一个' dll'或者' exe'扩展名以便被引用。"
为什么我不能添加ASP.NET Core项目作为参考?这是使我的UnitTest项目可以使用它的所有类和方法的唯一方法吗?
答案 0 :(得分:13)
项目仍然编译为可以引用的dll,因此不是引用项目,而是引用Core项目的bin文件夹中的dll
使用添加引用,浏览对话框
编辑csproj以使用变量进行配置,以便正确地在发布模式下构建。 e.g。
`
<Reference Include="YourLibrary, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\YourLibrary\bin\$(Configuration)\net45\YourLibrary.dll</HintPath>
</Reference>
答案 1 :(得分:3)
您无法添加ASP.NET 5(ASP.NET Core)项目作为.NET Framework .csproj项目的引用(我假设您的单元测试项目是)。这是当前Visual Studio工具中的一个功能差距,但将被修复(恕我直言作为即将到来的RC2的一部分)。为什么?因为它没有实现;)。
我还要强调Juliano的答案是正确的。 xUnit是.NET和ASP.NET团队的首选框架。
解决方案提示:将类作为链接文件包含到csproj中。像这样你可以编译两次并测试一次。不是最好的解决方案,而是一段时间的解决方法,直到工具将迎头赶上。