How to create exe of a console application - c#

How can we create the exe for a console forms application ?

an EXE file is created as long as you build the project. you can usually find this on the debug folder of you project.
C:\Users\username\Documents\Visual Studio 2012\Projects\ProjectName\bin\Debug

For .net core 2.1 console application, the following approaches worked for me:
1 - from CLI (after building the application and navigating to debug or release folders based on the build type specified):
dotnet appName.dll
2 - from Visual Studio
R.C solution and click publish
'Target location' -> 'configure' ->
'Deployment Mode' = 'Self-Contained'
'Target Runtime' = 'win-x64 or win-x86 depending on the OS'
References:
https://stackoverflow.com/a/44039013/5063433
https://stackoverflow.com/a/52443448/5063433
For an in depth explanation of all the deployment options available for .net core applications, checkout the following articles:
https://learn.microsoft.com/en-us/dotnet/core/deploying/deploy-with-vs?tabs=vs156
https://learn.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli

Normally, the exe can be found in the debug folder, as suggested previously, but not in the release folder, that is disabled by default in my configuration. If you want to activate the release folder, you can do this:
BUILD->Batch Build And activate the "build" checkbox in the release configuration. When you click the build button, the exe with some dependencies will be generated. Now you can copy and use it.

For .NET Core 2.2 you can publish the application and set the target to be a self-contained executable.
In Visual Studio right click your console application project. Select publish to folder and set the profile settings like so:
You'll find your compiled code with the .exe in the publish folder.

The following steps are necessary to create .exe i.e. executable files which are as
1) Open visual studio framework
2) Then, create a new project or application
3) Build or execute your application by pressing F5

Related

visual studio setup project shortcut not working [duplicate]

I have a very simple Windows Forms application (not the one with the .NET Framework) and I want to make an installer for it. The problem is that whenever I'm trying to run the installed application, it displays an error saying that it requires .NET Core to run, even if it's already installed. I tried including everything from the project output folder, including .exe and .dll files, but that doesn't seem to work. Here's how installer project files look like.
Please check out my nanny-level teaching!
Environment:
1.Add Enxtention:
2.Install Microsoft Visual Studio Installer Project:
3.Closs the ide to start installing:
4.Create a setup project:
5.Modify the information as needed:
6.Right click Setup (Application Folder) > add > file > (all the file):
7.Then create a shortcut, cut it to User Desktop and, after creating a shortcut, put it in User Program:
8.Build:
8.Install and run:

Building a Windows Setup Project gives many Setup files

I did the following steps to create a Windows Setup project:
Create a Windows Forms Application using Visual Studio
Install "Microsoft Visual Studio Installer Projects plugin"
Add a "Setup Project" to the solution
In the "Application Folder", add project output
(Steps 5 and 6 are optional)
By right clicking the Setup project and opening "Properties", select "Prerequisites"
Select "Download prerequisites from the same location as my application"
Build the solution.
After all these steps, I see many files (Setup.exe, Setup.msi, NETFX472 folder) in the Release folder. But I only want one simple self-contained setup file. So, users can run the setup file and install the application easily.
How can I make a simple and self-contained Setup file for my project?
I know it's possible, but I am looking for an easier and more efficient way to do it.
I know I can create another Windows Forms app called Setup which copies the project outputs to user's Program Files directory and copy the output files one-by-one. But I don't think that solution is elegant.
EDIT:
After more tries, I learned that Setup.exe is for installing dependencies (only .NET Framework 4.7.2 for my case) and then running Setup.msi. So, without Setup.msi file, Setup.exe is nothing and vice-versa.
Also, I want my program should work 100% offline (including setup). So, installer should include offline .NET Framework 4.7.2 installer.
What I don't want here is Setup.exe to only install dependencies. It should also install my program. So, it should do also whatever Setup.msi file does. Second thing I don't want is dependency installer as separate file (offline .NET Framework 4.7.2 installer in this case). It should also be embedded into Setup.exe.

My Visual Studio 2019 WPF app is setting a dll as the output when it should be an exe

This is my first time trying to make a deployable program. After creating a nice little WPF XAML app that runs (i.e. I can run the executable in the bin folder), I am trying to wrap it in a setup program.
After following multiple directions online for both WiX and "Microsoft Visual Studio Installer Projects". Both make installer packages, but they are only targeting the dll file from the WPF XAML output when I as for the "Primary Output". It seems this is stemming from the build of the WPF project.
How do I adjust the primary output of the build process so it is included in the setup program?
Screenshot of build output specifying the dll as the output file:
To add more details:
This could be one wpf(.net core) application instead of one wpf(.net framework). See the Output window in Elton's screenshot we can find the output is xx.dll instead of xx.exe.
If we create a Installer project in this solution, right-click the Installer project=>Add=>Project Output=>Primary output to contain the WPF's output in installer project, only the xx.dll is considered as wpf's output, but not xx.exe.
So after building the Installer project in VS, double-click the setup.exe(installer project's output), the wpf.exe is not well installed.
On top of Lance answer. You can add the publish items to your outputs near your main Primary Output.
1- Right-click on project and select Add => Project Output.
2- Choose your target project and select Publish Items from the list with your configuration.
3- Now you have another Output in your Application Folder.
Done. with every Batch Build you have your publish directory copied to application folder.
My Visual Studio 2019 WPF app is setting a dll as the output when it
should be an exe.
I'm sure you're using a WPF(.net core) project cause yesterday I happened to reproduce same situation in my machine. As for the cause of the issue, if you're interested in it, you may get some help from this issue. For .net core 2.2 and earlier, if we build a console(.net core) project, we'll get a xx.dll as output by default(Use dotnet xx.dll to run that).
But for .net core 3.0, I found this situation changes. Now if we build a Console(.net core) or WPF(.net core), apart from the xx.dll, we'll also get an xx.exe now. And I checked the Updated date of Installer Project and the Release date of WPF(.net core), the latest update of the Installer project is much earlier than the release of WPF(.net core), I guess maybe this is the cause? I'm not certainly sure how Installer Project recognize the output of one WPF project, but I suggest you can post this issue in DC forum , if it gets enough votes, the team will consider a fix.
Here're my workarounds which may help:
1.Use Add=>File instead of Add=>Primary Output:
Build the WPF project in release mode, navigate to the output path and copy that path. Then right-click Installer project=>Add=>Files to enter that path. Choose all files in output folder and click open:
Right-click the assembly file and choose Find in Editor:
Right-click the xx.exe=>Create a shortcut. Then move the shortcut to User's Desktop folder and set the AlwaysCreate property to be true.
After that, build the installer project and install that xx.msi or setup.exe in my machine, I'll get a shortcut in desktop, double-click it will run the wpf(core) application.
2.See this blog, we can use command like dotnet publish -r xxx -p:PublishSingleFile=true to get a single-file executable which is self-extracting and contains all dependencies (including native) that are required to run your app. In this situation, you don't need a Installer project to deploy your project. The single executable is enough. Hint from Lex Li in this issue.
Hope it helps :-)

How to deploy a "Release" build of an ASP.NET MVC5 application

So It's the first time I'm trying to deploy an ASP.NET MVC application to a Windows host.
I set the compile mode to "Release" in Visual Studio 2015 and I compile it but don't know which folder(s) to zip and upload to server...
I see an obj folder in project directory that has two folder inside it. "Debug" and "Release". I'm not sure about them though.
On the other hand in project directory root, there is a folder with the same name as project, inside it I can see controllers so I'm pretty sure that folder is not a "Release" build.
My host is running Plesk and IIS 8.
What should I do?
You should use the Publish wizard of visual studio. As a shortcut --> Right click on the MVC project and click publish. You will find many option here.
Make sure you configure your publish profile in release mode if you are publishing on server

Using a "copy always" file in a dll, which is referenced by an ASP.NET project

I have a component. This component has a file called myfile.txt under folder data. I want this file to appear in the data folder in the every complied console application or published ASP.NET webapplication under root/data/myfile.txt that references this component.
Now, in Visual Studio, I can set the file to "Copy Always", which is good for console applications, but for ASP.NET published websites, it will go to root/bin/data/myfile.txt
How to make this myfile.txt to appear always under the released application's root/data/myfile.txt, regardless if it's a console application or an ASP.NET webapplication?
What Visual Studio setting should I use for this file?
(I have full access to everything: the applications and the component too)
take a look to the Advanced Precompile Settings dialog box lets you specify how a web application is precompiled or assemblies are merged.
To access this dialog
In Visual Studio, open a web application project.
Right click the project name in Solution Explorer, and then choose Publish.
Select the Settings tab. Expand File Publish Options, and then select
Precompile during publishing.
take a look to the this reference maybe that helps

Categories