Using Visual Studio to Create a C# installer

C# Installer Intro:

This is a more complete list of all of the different processes you might want to have in an installer for c# in visual studio 2017. I have collected this data from across several different people on the internet but there seems to be no complete list anywhere so here you go. First thing is that if you want a free installer, what you have to do is to look for something called setup project. Here is a link to the download.

Step By Step Guide

initial setup

#1: Make sure that the download is installed. Simply double click on the download

#2: Open Visual Studio and open the solution that you want to add an installer to. Then right click on the solution itself within your solution explorer, then Add, then New Project. A frame will pop up called Add New Project. From here I recommend Setup Project. Though you could use the Wizard, you will learn more just doing each part on your own. Make sure you name it before pressing OK. It is now a good idea to open the properties of the setup project and change the author and manufacturer. This affects the folder names that it will be stored in.

Get your files to load

#3: Now you should have a screen that says File System come up. If not, don’t worry all you have to do is right click on your newly created setup project, go to view and then File System. From here you can access the different things you might want to modify when your installer runs. Application Folder represents the actual folder that will be created and filled with your source files. the other two are fairly self explanatory as the users desktop and programs menu.

#4: Now you need to choose what files you want to add to your installer. Right click on application folder and Add. From here you have three options. Folder, project output, file, or assembly.  Project output is a good option because it auto-detects what is in your C# code and finds a way to insert what is need into your installer. If, however, you have additional files that you wish to add, you can choose either folder, or files. These will come in handy later.

#5: As for the Desktop and programs menu. If you want you can add a shortcut to either of these. If your program is an exe file and it needs to be run then this is a good option.

Setting up the files that you have

#6: It is wise to set up any dlls or other assemblies to be in the proper format. In my particular case I was using COM dlls and so i had to make sure that they were registered correctly. In order to do this I set the Register to vsdrfCOM. I was unable to figure out exactly how to get registry to work for these direct from the installer. As a result I was forced to build a program to do it for me and add it as part of the installation.  Update to come If I do figure it out.

Adding an executable to the installation process

#7: You may, as I did, wish to add an executable to your installation process. It is not to hard to do so. First, right click on your setup project in the solution explorer. Go to view, then custom actions. From here you can choose an executable to be an element of your install.

For each of the four folders you are going to right click and then choose add custom action. Here is where the file or folder options from step #4 will come in handy. You can only select an executable from the files you are installing which should make sense because you cant be sure that file will be located in your destination. Select the file you wish to use from the application folder.  Next, open the properties for the newly created custom action. Change the  Installer class field to false. Once this is done your executable will perform the desired program on install.

In order to make sure that the the installer will overwrite older versions of the installed program. and so follow these steps to make sure that it installs properly.

  1. Set Remove Previous Installation as True
  2. Set Detect new version as True
  3. Your C# program’s version must increase with every deployment
  4. You should change version of your installer to one higher version and it will ask you to change product code, select YES.
  5. Do not change your upgrade code, let it be same.


At this point your installer should build your C# program on a new windows platform.

Share Button

Restful Service Help

Here are some websites with tips on how to make Restful Services.

Share Button

Creating a Service in C# with visual Studio

So you want to create a service in C#? well look no further. This article is amazing and will take you through each step clearly and let you know how to make the service. Highly recommend for creating services in the future.

Share Button

James’ Error codes

The following are Error codes used by James’ programs across platforms:

/// Error Code SE-JEHG-0001 = Programer needs to implement XLVBAInitializer method before running code.
/// Error Code SE-JEHG-0002 = User did not provide a destination for StackEm.
/// Error Code SE-JEHG-0003 = VBA constructed name for destination of stackem is invalid

This list is in progress.

Share Button

Daily Dose of Fiber to Keep your Internet Regular

So you want really fast internet in the calgary area? Well let me do the leg work for you! These websites offer down and up of at least 150mbs and fiber cables.

Share Button

How log out as Basic Auth

When you create a website with basic auth there is an unfortunate consequence in that there is no built-in method for logging out the user. Since basic auth username and password are stored on the client side, the server actually has no power to remove what is stored in the user browser’s cache. The solution? Create a log out screen where the user is prompted to put in the wrong password. This is usually counter-intuitive to most log out systems but is unfortunately the only way to get the client’s own browser to replace what is in the basic auth cache. A good example for how to set up the code in order to make this happen can be found at the following website:

Share Button

Setting up WebDAV for IIS 10

In order to set this up for customers to use automatic file transfer via webDAV I found a really good website that seems to provide the perfect method except you skip the last step where you link it to the particular website. Here is the link.  This allows the user to automatically update files on the server.

Then I had to enable some sort of authentication (I used Basic Auth as it was one user). This website filled this in (this guy at Microsoft is stellar – he is a teaching kind of guy) Continue reading

Share Button

project folder name manipulate, VS

Sometimes when you are writing a program in visual studios you suddenly come to the realization that one of the folders you are using in your program really doesnt make sense anymore. Maybe you changed what it does or it has evolved in purpose or maybe the original creator simply gave it a bad name. Well there is a way to change the project folder name at any time. How this is done is one finds the location of the project in explorer. Simply change the specific project folder name with the rename tool and then launch microsoft visual studio. Visual studio, upon launching, will inform you that the particular project you are loading can not be loaded properly. This is because the file path that it was using now leads nowhere. The solution is to click on the particular project, not the solution, and click properties. find the path. Since this VS detects that there is an issue with the path it will now allow you to manipulate it. Change the part of the path that has the old name and replace it with the new one. Now the project folder name is fixed and all you have to do is reload the particular project and it will be ready to use!

Share Button

What I learned about SMTP for Filemaker and AWS

What I have learned about SMTP. I have created a SMTP credentials on aws and I have assigned the main company email to that source. It however only has three locations, west US, east US, and EU. Since we live in Canada I figured US west would be the best one. This means that the host is The aws system requires a few things to run properly. Firstly it needs to use port 587 as Amazon cuts off all communication through email on port 25. Second, it requires the use of Transport Layer Security. Now there is also the filemaker side. in filemaker server admin one can go to general settings and under email notifications one can find the SMTP information. Here One can fill in all of the information that Amazon requires. I used the Amazon host as the SMTP server address, filled in 587 in the port, tried both forms of SMTP Authentication, checked the use transport layer security and filled in both the credentials for reaching the host, or endpoint then I hit the test SMTP settings… button. This unfortunately always said the same thing: SMTP test failed, check your settings or email. IN the activity log this recorded as email notification to administrators failed:1506. When I looked this up on the internet the best answer i could find indicated that this meant that something was going wrong externally from file maker and this represented a generic error that the email did not go through. So far the emails do not work despite seemingly having all the proper information.

Share Button

Install SSL Certificate cPanel

The following website is a step by step method of putting the SSL server certificate files in your website and then setting up the domain:

From the looks and current state of our website, we need to add the option so that we can use the “Setup a SSL certificate to work with your site” option within SSL/TLS Manager. It also appears as though one requires a Certificate that we must either make ourselves our obtain.



Share Button