如何在dotnet Core中将moq添加为依赖项?

8

我在我的dotnet core应用程序中有以下依赖项:

 "dependencies": {
        "xunit": "2.2.0-beta2-build3300",
        "dotnet-test-xunit": "2.2.0-preview2-build1029",
        "Moq": "4.0.10827"
    },

无论我下载什么版本的Moq,都无法支持,显示如下信息:
Package Moq 4.0.10827 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Moq 4.0.10827 supports:
      - net35 (.NETFramework,Version=v3.5)
      - net40 (.NETFramework,Version=v4.0)
      - sl4 (Silverlight,Version=v4.0)
    One or more packages are incompatible with .NETCoreApp,Version=v1.0.

但是我在这篇博客文章上读到:Moq on .NET Core,说它是可能的,我在Visual Studio Code中安装了Nuget插件,所以它可以自动完成包,但是当我输入moq.netcore时,我找不到任何包。也许我更想知道是否真的存在这样一个插件的方法,而不仅仅是一个答案,因为现在我不能在Nuget上看到包是否支持dotnet Core,你们如何检查它是否有支持?并且你们只在Nuget.org上查找包吗?

谢谢

编辑:solution project.json:

{
    "version": "1.0.0-*",
    "testRunner": "xunit",
    "dependencies": {
        "xunit": "2.2.0-beta2-build3300",
        "dotnet-test-xunit": "2.2.0-preview2-build1029",
        "moq": "4.6.38-alpha"
    },
    "frameworks": {
        "netcoreapp1.0": {
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.0.0"
                }
            }
        }
    }
}
1个回答

8
我猜Nuget中当前稳定版本是4.5.23,在你的代码中你已经提到应该是4.0.10827,可能这就是问题所在。
正如错误所示,Moq 4.0.10827不兼容netcoreapp1.0,它只支持4.0版本。点击这里查看更多关于Moq版本的详细信息。
我还写了一篇关于Moq在.NET Core中的博客,可以在这里找到。但由于新变化,我每天都会对其进行更改。 编辑:根据DenLilleMand的说法:

4.6.38-alpha可以使用 - 但例如4.5.3无法使用,因为Moq 4.5.3仅支持net45,而一个或多个包与.NETCoreApp V1.0不兼容。


3
哦,你是对的,问题出在版本上。4.6.38-alpha 版本可以运行,而 4.5.3 版本不能运行,因为它会抱怨 Moq 4.5.3 只支持 net45,并且有一个或多个包与.NETCoreApp V1.0 不兼容。所以我更新了我的答案,加入了新的 project.json 文件。非常感谢! - DenLilleMand
仅有这个版本对我有效。我没有尝试其他版本,但我确认4.6.38-alpha适用于我。 - shturm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接