我想将.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或其他设备上运行吗?
答案 0 :(得分:3)
要生成EXE而不是DLL,您需要自包含部署。您目前正在做的是依赖于框架的部署。 要将您的转换为自包含,请在project.json文件中执行以下步骤。
"type": "platform"
。"runtimes"
部分。构建时,传入目标操作系统。例如。 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)
您需要从构建菜单中选择发布。 选择要发布到的文件夹。 填写您要发布的目标操作系统。 保存并点击右上角的发布。