c# – What files should be in the release build?

Question:

Good day!

It seems like I reached a new stage in becoming a programmer, when I entered the folder with one of the developed programs, and became incredibly indignant shouting "What the hell ?!".

All of us, ever since the time when games were downloaded from torrents, and to activate and hack the game, it was necessary to place files from the "Crack" folder in the game folder, we are familiar with the picture of how the insides of the software should look like. Everything in these folders is well structured: several folders with libraries and resources and the game shortcut itself.

So I go into the folder with my program in order to make an installation file, and there is a bunch of unnecessary information.

I want to say right away that I searched and googled information on the issues that are described below, but many topics that could help me have been created a long time ago, and most likely the people who answered there will not be able to quickly give me additional explanations.

I would be grateful for any information, both a personal explanation and links to clever and boring documentation.

I program in C # using Visual Studio 2015 and Visual Studio 2017 for this.

The questions themselves:

  1. How to put libraries and program files into appropriate folders? Found a way to write to a configuration file, but is this really the only way? I am sure there is a much more refined and beautiful way to do it!

  2. Why do we need .pdb files in a release build and is it possible to get rid of them? And if possible, how?

  3. Are .xml files needed in a release build? And if they are not needed, then how to get rid of them?

Ps The files .vshost.ext and manifest, I figured out how to disable it and I know their purpose))

Thank you all for your time and help!

Answer:

  1. No way. There is no need to put anything in separate folders, unless it is caused by some real need (for example, the resource loading mechanism can search for assemblies in folders named ru-ru and en-us).

  2. Needed to debug the release build. You don't have to include them in the final installer, but if there is any chance of debugging the release, at least at the stage of pre-release testing, you should save a copy of pdb. MS has a separate "server" for storing symbols – a set of utilities for organizing pdb storage.

  3. XML documentation – files named someassembly.xml – are not needed unless your product is the assembly itself. Everything else depends on what kind of files they are. XML is just a format, anything can be in the file, so it is impossible to estimate its necessity in general in advance.

Scroll to Top