ASP.NET Core 1.0 模拟测试

7

我按照这个ASP.NET Core 1.0: hints to get started教程以及其他教程尝试在我的ASP.NET Core MVC项目中实现一些模拟工作,但是我只能得到下面的结果:

 Package moq.netcore 4.4.0-beta8 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package moq.netcore 4.4.0-beta8 supports:
  - dotnet (.NETPlatform,Version=v5.0)
  - net35 (.NETFramework,Version=v3.5)
  - net40 (.NETFramework,Version=v4.0)
  - sl5 (Silverlight,Version=v5.0)
One or more packages are incompatible with .NETCoreApp,Version=v1.0.

到目前为止有没有解决方案?

我的project.json文件:

 {
  "version": "1.0.0-*",
  "testRunner": "xunit",
  "dependencies": {
    "xunit": "2.2.0-beta2-build3300",
    "APP.Portal": "1.0.0-*",
    "dotnet-test-xunit": "2.2.0-preview2-build1029",
    "moq.netcore": "4.4.0-beta8"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      }
    }
  }
}

我的NuGet.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="AspNetVNext" value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
        <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
    </packageSources>
</configuration>

我已经把这个工作做好了,你能发一下你的package.json文件吗? - Dr Schizo
{ "version": "1.0.0-", "testRunner": "xunit", "dependencies": { "xunit": "2.2.0-beta2-build3300", "App.Portal": "1.0.0-", "dotnet-test-xunit": "2.2.0-preview2-build1029", "moq.netcore": "4.4.0-beta8" }, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } } } } } 这是我的project.json文件。 - Anja Hirschmüller
与我的不同,我正在使用包“Moq”:“4.6.25-alpha”,但这也需要“system.diagnostics.tracesource”:“4.0.0”。我将尝试更新我的解决方案。刚刚注意到你也在使用不同的源。我不使用myget,因为它会导致问题和兼容性问题。 - Dr Schizo
当我尝试使用你的代码时,我遇到了以下问题:无法解析“.NETCoreApp,Version=v1.0”所需的“moq.netcore(>=4.6.25-alpha)”。 - Anja Hirschmüller
看起来你正在使用的源无法找到它,请尝试添加 https://www.nuget.org/api/v2。 - Dr Schizo
显示剩余2条评论
1个回答

7
您可以尝试添加一个支持的框架的导入。
例如:
```python import framework_name ```
"frameworks": {
"netcoreapp1.0": {
  "imports": [
    "dotnet5.6",
    "dnxcore50",
    "portable-net45+win8"
  ],
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  }
}
}

编辑:我发现这篇文章对于理解 .net core 中的框架和导入非常有用-https://blogs.msdn.microsoft.com/cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks-and-what-the-target-framework-monikers-tfms-are-about/


但这种导入感觉像作弊吗? - Anja Hirschmüller
@AnjaHirschmüller 是的,感觉像作弊。我建议尝试通过我提供的源解决引用问题。这样你就不需要添加导入了。请查看 https://github.com/OnamChilwan/AspCore-1.0。 - Dr Schizo
我相信这些导入仅引用早期版本的.NET Core。更多信息所以我会说,除非您引用了旧的.Net框架,否则这并不是作弊。这只是允许您运行尚未更新的依赖项。不过,我对这方面还很陌生,所以我的理解可能完全错误。 - David Kirkpatrick

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