【问题标题】:Targeting a .NET Core 2.0.1 web project from a C# Test project based on .NET 4.7.1从基于 .NET 4.7.1 的 C# 测试项目中定位 .NET Core 2.0.1 Web 项目
【发布时间】:2018-07-12 23:19:10
【问题描述】:

我开始使用 Visual Studio 2017 Enterprise 进行测试驱动开发,但无法(无论我多么努力)让它发挥作用。我曾尝试在 WWW 上到处寻找解决方案,但无济于事。所以我希望这里的人能够提供帮助。问题如下:

我创建了一个 ASP.NET Core Web 应用程序和一个单独的测试项目;我使用 NUnit 作为测试框架(我第一次使用 xUnit,但由于某种原因,测试消失了并且无法运行)。无论如何,当我尝试从测试项目中引用我的 ASP.NET Core Web 应用程序时,会出现以下错误:

项目“..\MyProject\MyProject.csproj”以“netcoreapp2.1”为目标。它不能被以 '.NETFramework,Version=v4.7' 为目标的项目引用。单元测试项目1

有没有人知道什么地方出了问题以及如何解决?任何帮助将不胜感激。

最好的问候。

编辑

我在这里详细阐述了这个问题。我试着在下面说明它。我附上了 3 张图片来说明我的意思。

首先,当我想在 Visual Studio 中创建一个测试项目时,我转到“测试”模板 - 在那里我只看到图 1 所示的模板。 1 - 我可以在不同的 .NET 版本之间进行选择,如下拉列表中所示。不管我选择了哪一个,我都收到了我之前帖子中提到的错误。

然后,我尝试使用 .NET Core 模板,在其中发现了 2 种类型的测试项目:MSTest 和 xUnit 测试(见图 2)。 MSTest 在我的情况下不可用,因为它对于这个确切的应用程序有点太有限了。因此,我尝试使用 xUnit 测试项目。但是,当我这样做时,系统会抱怨缺少各种库,并且在查看解决方案资源管理器中的“依赖项”部分时,所有库都显示有一个黄色的“警告”三角形(见图 3) ,并且根本没有编译。

所以我有点卡住了。有什么想法吗?

【问题讨论】:

    标签: unit-testing visual-studio-2017 tdd asp.net-core-2.0 .net-4.7.1


    【解决方案1】:

    测试项目面向 .NET Framework 4.7,Web 项目面向 .NET Core App 2.1。

    您不能将一个引用添加到另一个引用,因为它们不兼容。

    要解决这个问题,您应该创建一个以 netcoreapp2.1 为目标的测试项目,并将其中的引用添加到 Web 项目。

    【讨论】:

    • 嗨,亚历克斯,感谢您的回答。我对此有点怀疑,并尝试了不同的替代方案,但我仍然卡住了。请参阅我对先前问题的编辑,我在其中用一些插图进行了详细说明。
    • 您是否尝试过从命令行进行 dotnet 还原或从 Visual stdio 进行包还原?
    • 是的,我都试过了——结果还是一样。
    • 你能分享一个重现的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 2019-04-12
    • 2017-04-28
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    相关资源
    最近更新 更多