Dans mon dernier article, "Visual C # Express - Types de fichiers (5e d'une série)", j'ai discuté les types de fichiers Visual C # génère lorsque vous créez un projet Windows simple. Cependant, j'ai limité la discussion aux fichiers générés avant la première réelle construction du projet.
Cet article étend mon article précédent, en examinant les fichiers créés C # Express après avoir fait une C # Express Build.
MSBuild
Microsoft a créé un tout nouveau utilitaire de création pour Visual Studio 2005 appelée MSBuild. En général lorsque vous générez une solution complète, C # Express invoque MSBuild avec le fichier solution en entrée. MSBuild utilise ensuite le fichier de solution pour découvrir les dossiers de projets individuels qui contiennent des instructions de compilation XML.
Il est très intéressant de noter, cependant, que le dossier de projet SimpleWindow3 généré par le C # Express IDE n'est pas autonome, mais plutôt, il comprend une référence à un autre fichier de projet XML, Microsoft.CSharp.targets, généralement situé en dessous du C: / WINDOWS / Microsoft.NETFramework / répertoire.
Mais ce n'est pas tout. Microsoft.CSharp.targets comprend une référence encore une autre encore un autre fichier de projet XML, Microsoft.Common.targets, aussi généralement situé sous le répertoire C: / WINDOWS / répertoire Microsoft.NETFramework.
À la lumière des informations ci-dessus, nous pouvons conclure que la plupart de la façon dont C # Express s'appuie projet / solutions dépend de MSBuild, et presque rien qui ne MSBuild est codé en dur. Plutôt, MSBuild suit une accumulation de séquence qui est en grande partie déterminé par votre (relativement) petit dossier de projet, le Microsoft.CSharp.targets plus, et le grand fichier Microsoft.Common.targets. La dernière fois que j'ai vérifié, Microsoft.Common.targets a été plus que plusieurs milliers de lignes de XML. Maintenant, examinons les fichiers créés par MSBuild dans une application Windows classique.
Fichiers créés dans le SimpleWindow / SimpleWindow / obj de sortie /
MSBuild crée les fichiers suivants dans le SimpleWindow / SimpleWindow / obj / répertoire de sortie:
SimpleWindow.csproj.GenerateResource.Cache est un fichier oddball peu créé par le Groupe GenerateResource de MSBuild. La documentation de Microsoft dit pour MSBuild appelle cela un "statefile" et dit qu'il "Indique le chemin d'un fichier cache optionnel utilisé pour accélérer la vérification des dépendances de liens dans les fichiers. Resx entrée".
SimpleWindow.Properties.Resources.resources est également la version binaire compilé de l'Resources.resx que nous avons étudiée dans mon dernier article. En fin de compte ce MSBuild liens avec les versions compilées des fichiers C # de ce produit pour produire un fichier d'assemblage unique, de sorte à des fins de ce projet, il est un fichier intermédiaire.
SimpleWindow.exe est l'ensemble créé par MSBuild en utilisant le compliler C # (usingt la tâche du SCC). Il contient le contenu de SimpleWindow.Properties.Resources.resources et le contenu compilée de Form1.cs, Form1.Designer.cs, Program.cs, AssemblyInfo.cs, Resources.Designer.cs, et Settings.Designer.cs. Ceci est le fichier exécutable produit par ce projet.
SimpleWindow.pdb supporte le débogage. Selon Microsoft, les fichiers PDB "hold débogage et informations sur l'état de projet qui permet la liaison incrémentielle d'une configuration Debug de votre programme". fichiers PDB sont créés lorsque vous activez le débogage dans le C # compile proecess.
Les fichiers copiés dans le répertoire bin / Debug et bin Annuaire de sortie /
Enfin, lorsque MSBuild est fini de créer l'ensemble SimpleWindow.exe et les fichiers connexes, le copie
SimpleWindow.exe et SimpleWindow.pdb à l'SimpleWindow / SimpleWindow / bin / Release.
En outre Exploration
Si vous voulez voir le comportement de plus intéressant, appuyez sur la touche F5 pour exécuter la version de débogage de votre programme, puis quittez le programme et d'examiner les SimpleWindow l'/ SimpleWindow / bin / Debug. Magic - SimpleWindow.exe et SimpleWindow.pdb ont été copiés dans le SimpleWindow / SimpleWindow / bin / Debug. Quels sont les contrôles ce que c'est? Comment Visual C # Express savoir pour utiliser ce répertoire et où trouver les fichiers à déplacer dans ce répertoire? Ces questions sont intéressantes pour de futurs articles.
Sommaire
C # Express crée un répertoire et un ensemble de fichiers source lorsque vous créez un projet d'application Windows, mais lorsque vous générez le projet de l'utilitaire MSBuild prend le relais et crée des fichiers de ressources compilé, fichiers débogueur en charge les données, et, finalement, un fichier d'assembly exécutable ( SimpleWindow.exe).