What is the function of each file in a simple C # project?


I want to ask about the files that are found in the folder of a simple C# Project . like (.pdb file , .vshost file , .manifest file ) in bin folder ( .csproj.fileListAbsolute.txt file , .pdb file ) in debug folder (AssemblyInfo.cs ) in Properties folder

what is the function of each file of them ?

and which of them is in MSIL , if there is no file of them in this language how can I get file in MSIL ?

another question : what is the specific part that converts C# code into MSIL ?? , Is it the C# Compiler ? Is there any specific name to it ?

Technically, the pdb, vshost, and manifest file are not part of a C# project, the are part of the output generated when you build the project.

The PDB file contains symbol information used by the debugger to associate code within the assembly with your sources files. This allows the debugger to identify which line of source code corresponds a set of instruction in the MSIL of an assembly.

The vshost.exe file is a hosting process that visual studio generates that helps accelerate the debugging of an application. It caches app domain for your process to reduce the startup time for the debugger.

The manifest file contains information about the assemblies in a project and some common metadata about them. Its contents varies by project type.

The csproj file is xml-based representation of the code and resources for a project. It's the file that Visual Studio uses to figure out what code and resuorces to compile into an assembly. This file also contains project settings and options that control how the compiler (and other tools) process the assets of a project.

None of these files contains MSIL. The MSIL is part of the .exe and .dll files generated when you build a project. These files are encoded using the Microsoft PE (portable executable) format, and contain resources, data, and MSIL code.

The exe and dll, and pdb files are generated by the C# compiler - csc.exe. The other files (IIRC) are generated by other tools invoked by the msbuild process that controls the entire build cycle.