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?
First, right-click on the project and then hit Publish, then select folder and click create. Click the edit button to edit the configuration. In the publish configuration you can check the single EXE option.
DLL to EXE is an Open Source, portable, Command Prompt utility that can convert any DLL to an EXE (executable). If you execute DLL to EXE without first being in the Command Prompt or Powershell, you will be shown the arguments required. Simply put, type in "dll_to_exe filename.
NET Core v. Next ,” as Microsoft describes it). That said, Microsoft will end long-term support for the most recent release of Core (3.1. 7) around December 2022 and has just announced that .
I think most people got to this page because they picked .net core and they can't get an executable .exe file from their VS 2017 build. vs 2015 always used to make a .exe file for a console application. Suddenly vs 2017 is fussing over this simple task. With vs 2017 when you create the project you get 2 choices for a Console application. One is Console App (.NET Core) and the other choice is Console App (.NET Framework). If you pick the .NET Core option you are going to have to move heaven and earth to get a .exe file from your Build. The (.NET Core) option creates a .dll file from a Build. If you pick the (.NET Framework) option it will build a xxxx.exe executable for you by default.
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
{
"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": {}
}
}
See also: https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/#self-contained-deployments-scd
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With