如何在Mac OS上运行.NET Core控制台应用程序

10

我刚刚在MAC上安装了Visual Studio,并创建了Hello World控制台应用程序。当我按下底部窗口(应用程序输出)中的播放按钮时,我可以看到“Hello World”。

然而,我该如何从命令/终端行执行该应用程序呢?

如果我尝试运行"./myapp.dll",我会收到权限被拒绝的提示,即使在使用sudo su之后也是如此。

所以,我不确定该怎么运行它。

这是我的JSON。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.0"
        }
      }
    }
  },
  "runtimes": {
    "win10-x64": {},
    "osx.10.10-x64": {}
  }
}

更新

我已经运行了 dotnet restore 和 dotnet run,一开始我遇到了这个错误: 找不到 '.NETCoreApp,版本=v1.0' 框架的运行时目标,与一个目标运行时 'osx.10.12-x64' 兼容。可能的原因:

然后我将我的 project.json 更改为以下内容:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.0"
        }
      }
    }
  },
  "runtimes": {
    "win10-x64": {},
    "osx.10.12-x64": {}
  }
}
然后我收到数百个类似以下错误: System.Threading.Tasks 4.0.11 为 .NETCoreApp,Version=v1.0 上的 System.Threading.Tasks 提供编译时参考程序集,但是没有与 osx.10.12-x64 兼容的运行时程序集。 System.Threading.Timer 4.0.1 为 .NETCoreApp,Version=v1.0 上的 System.Threading.Timer 提供编译时参考程序集,但是没有与 osx.10.12-x64 兼容的运行时程序集。
只列出了一些 :)
我猜我的 OSX 运行时不正确,但我应该设置它吗?
1个回答

17
你需要使用dotnet运行它,就像这样:
dotnet myapp.dll
据我所知,这个工具目前还不支持直接使用“准备就绪”(即本机)二进制文件。

然后我会收到数百个像这样的错误:System.Threading.Tasks 4.0.11 提供了一个编译时引用。

你的 project.json 文件缺少框架的平台类型。它应该像这样:

"netcoreapp1.0": {
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    }
  }
}

我收到以下错误信息:TNET1017:“项目文件不存在” '/Users/luis.valencia/Projects/test2/test2/bin/Debug/netcoreapp1.0/project.json'。虽然我已经有一个 .json 文件,但我完全理解这个错误。 - Luis Valencia
@LuisValencia-MVP 你运行了什么命令?应该是 dotnet path\to\myapp.dll。从 csproj 的目录中运行 msbuild 应该会构建项目并打印出构建目录的位置。 - vcsjones

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