为mac创建一个自包含的可执行文件

时间:2016-12-14 13:09:15

标签: c# .net .net-core

我在Visual Studio中创建了一个.net核心控制台应用程序。我想现在打包它作为Windows&的可执行文件。 MAC。

我将运行时部分添加到project.json。

这是我的projects.json,基于我在这里看到的内容:https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/index#self-contained-application

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },

  "dependencies": {
    "AngleSharp": "0.9.9",
    "CsvHelper": "2.16.3",
    "Microsoft.NETCore.App": {
      "version": "1.0.1"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
    }
  },
  "runtimes": {
    "win10-x64": {},
    "osx.10.10-x64": {}
  }
}

这会在调试/发布中创建一个名为win10-x64的文件夹,其中包含一个可执行文件,但没有osx文件夹。

我是否缺少针对此操作系统的依赖项?

2 个答案:

答案 0 :(得分:8)

答案是从命令行发布它

dotnet publish -r osx.10.10-x64

然后文件夹/osx.10.10-x64/publish/包含一个可以在安装了SDK的mac上运行的文件。

答案 1 :(得分:-1)

.NET Core不直接构建可执行文件。虽然这是在路线图中,但最后我检查了(1.0.1)它还没有做到。您将在编译时获得一个DLL文件,您可以通过将其传递给dotnet二进制文件来运行该文件。不要让DLL扩展欺骗你,它可以在任何支持的平台上运行。

正如另一个人所说的那样,你应该发布一个发布来确保你的所有应用程序文件都被复制到发布文件夹中,以便他们准备捆绑,但是同样的DLL文件只是复制到那里。我已经采用相同的发布结果并在IIS下的Windows和Kestrel下的Red Hat上运行它们。