将.Net Core构建为EXE而不是DLL

时间:2017-01-17 19:32:48

标签: c# dll .net-core

我想将.NET Core项目构建为EXE而不是DLL,以便可以执行。

这里的答案不起作用:How to run a .Net Core dll?

以下是示例代码:

using System;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

这是我的project.json:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

我目前正在使用VSCode,每当我使用构建任务构建项目时,或者运行dotnet restore我只在.dll文件夹中获得bin/Debug

如何将.NET核心应用程序构建为exe?

奖励:我知道,会在Mac或其他设备上运行吗?

3 个答案:

答案 0 :(得分:3)

要生成EXE而不是DLL,您需要自包含部署。您目前正在做的是依赖于框架的部署。 要将您的转换为自包含,请在project.json文件中执行以下步骤。

  1. 删除"type": "platform"
  2. 为您的应用支持的操作系统添加"runtimes"部分。
  3. 构建时,传入目标操作系统。例如。 dotnet build -r osx.10.10-x64

    这是结果project.json

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

    另请参阅:https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/#self-contained-deployments-scd

答案 1 :(得分:0)

我认为大多数人进入此页面是因为他们选择了.net核心,并且无法从VS 2017版本中获取可执行的.exe文件。 vs 2015始终用于为控制台应用程序创建.exe文件。突然vs 2017正在为此简单的任务大惊小怪。在vs 2017中,当您创建项目时,控制台应用程序有2个选择。一个是控制台应用程序(.NET Core),另一个是控制台应用程序(.NET Framework)。如果选择.NET Core选项,则您将不得不从天而降,从Build中获取.exe文件。 (.NET Core)选项从Build创建一个.dll文件。如果选择(.NET Framework)选项,则默认情况下它将为您构建一个xxxx.exe可执行文件。

答案 2 :(得分:0)

您需要从构建菜单中选择发布。 选择要发布到的文件夹。 填写您要发布的目标操作系统。 保存并点击右上角的发布。