I want to build a .NET Core project as a EXE and not a DLL so it can be executed.
The answer here did not work: How to run a .Net Core dll?
Here is the sample code:
using System;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Here is my 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"
}
}
}
I'm currently using VSCode, whenever I build the project with the build task, or run dotnet restore
I just get a .dll
in my bin/Debug
folder.
How do you build a .NET Core application as an exe?
Bonus: I do, will that run on a mac or other device?
To produce an EXE instead of a DLL, you need a self-contained deployment. What you are currently doing is a framework-dependent deployment. To convert yours to self-contained, take the following steps in your project.json file.
"type": "platform"
."runtimes"
section for the operating systems your app supports.When you build, pass in the target operating system. E.g.
dotnet build -r osx.10.10-x64
.This is the resultant project.json
See also: https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/#self-contained-deployments-scd