Mac OS X上的DNX:System.DllNotFoundException

时间:2015-05-14 22:34:36

标签: macos mono thinktecture-ident-server dnx

我试图在Mac OS X上使用DNX beta4运行Thinktecture IDP v3(https://github.com/IdentityServer/IdentityServer3)。

为此,我使用了他们的一个示例:https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/AspNet5Host

如果我在Windows上运行该示例,一切都很好。

在OS X上,使用Mono 4.0.1和DNX beta4,当我运行时:

mono .../.dnx/runtimes/dnx-mono.1.0.0-beta4/bin/dnx.mono.managed.dll . kestrel

我收到以下错误:

[0x7fff74d46300:] EXCEPTION handling: System.DllNotFoundException: api-ms-win-core-file-l1-2-0.dll
[0x7fff74d46300:] EXCEPTION handling: System.EntryPointNotFoundException: ReadFile
[0x7fff74d46300:] EXCEPTION handling: System.EntryPointNotFoundException: LoadLibraryExW
[0x7fff74d46300:] EXCEPTION handling: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
Started

我试图找出 api-ms-win-core-file-l1-2-0.dll 是什么以及要求它。单? Thinktecture包?

我的project.json如下:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Kestrel": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Thinktecture.IdentityServer3": "1.5.0",
    "Microsoft.AspNet.Owin": "1.0.0-beta4",
    "Microsoft.Owin": "3.0.1",
    "Microsoft.AspNet.DataProtection": "1.0.0-beta4",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta4"
  },

  "commands": {
      "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
      "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5005"
  },

  "frameworks": {
    "dnx451": { }
  },

  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ]
}

1 个答案:

答案 0 :(得分:1)

AFAIK Mono 4和ASP.NET Beta 4之间存在不兼容性。用户选择Mono 3.x和Beta 4 - 或Mono 4和Beta 5。