910 votes

Quels sont les différents "action de génération" dans les paramètres VS.NET les propriétés du projet et que font-ils?

Pour la plupart, il vous suffit de prendre ce que Visual Studio jeux pour vous en tant que par défaut.. je fais référence à la BuildAction Propriété pour chaque fichier sélectionné dans l'explorateur de solutions. Il y a un certain nombre d'options et il est difficile de savoir ce que chacun d'entre eux le feront.

1111voto

Gishu Points 59012
  • Aucun: Le fichier n'est pas inclus dans le projet de sortie de groupe et n'est pas compilé dans le processus de construction. Un exemple est un fichier texte qui contient de la documentation, tel qu'un fichier Readme.

  • Compiler: Le fichier est compilé dans la sortie de la construction. Ce paramètre est utilisé pour les fichiers de code.

  • Contenu: Permet de récupérer un fichier (en même dir que l'assemblée) est un flux de données via l'Application.GetContentStream( uri ). Pour que cette méthode fonctionne, il a besoin d'un AssemblyAssociatedContentFile attribut personnalisé qui VS gracieusement ajoute lorsque vous marquez un fichier en tant que "Contenu"

  • Ressource incorporée: incorpore le fichier dans un exclusif de l'assemblée manifeste de ressources.

  • Ressource (wpf uniquement): intègre le fichier partagé (par tous les fichiers dans l'assemblée avec ce type de configuration) de l'assemblée manifeste ressource nommée AppName.g.les ressources.

  • Page wpf(uniquement): permet de compiler un xaml le fichier en baml. L' baml est ensuite incorporé avec la même technique que Resource (i.e. comme " AppName.g.ressources)

  • ApplicationDefinition (wpf uniquement): Marque le XAML/fichier de classe qui définit votre application. Vous spécifiez le code-behind avec x:Class="espace de Noms.ClassName" et définissez le formulaire de démarrage/page avec StartupUri="Window1.xaml"

  • Le SplashScreen (wpf uniquement): Une image qui est marqué comme SplashScreen s'affiche automatiquement lorsqu'une application WPF charges, puis s'estompe

  • DesignData: Compile xaml viewmodel de sorte que les contrôles utilisateur peuvent être visionnés avec des exemples de données dans visual studio (utilise maquette types)

  • DesignDataWithDesignTimeCreatabletypes: Compile xaml viewmodel de sorte que les contrôles utilisateur peuvent être visionnés avec des exemples de données dans visual studio (utilise des types réels)

  • EntityDeploy: (Entity Framework): utilisé pour déployer le Cadre de l'Entité artefacts

  • CodeAnalysisDictionary: Un fichier xml contenant personnalisé dictionnaire de mot pour les règles d'orthographe

119voto

Paul Batum Points 3459

À partir de la documentation:

La propriété indique BuildAction ce que Visual Studio ne avec un fichier lorsqu'une construction est exécutée. BuildAction peut avoir plusieurs valeurs:

Aucun - Le fichier n'est pas inclus dans le projet de sortie de groupe et n'est pas compilé dans le processus de construction. Un exemple est un fichier texte qui contient la documentation, tel qu'un fichier Readme.

Compilez - Le fichier est compilé dans la sortie de la construction. Ce paramètre est utilisé pour les fichiers de code.

Contenu - Le fichier n'est pas compilé, mais est inclus dans le Contenu de sortie groupe. Par exemple, ce paramètre est la valeur par défaut pour un .htm ou d'autres type de fichier Web.

Ressource incorporée - Ce fichier est intégré dans le projet principal de construire sortie comme une DLL ou un fichier exécutable. Il est généralement utilisé pour les fichiers de ressources.

36voto

Dominic Hopton Points 6052

Page-Prend le spécifiée fichier XAML, et les compile dans BAML, et l'intègre de sortie dans la gestion de flux de ressources pour votre assemblée (plus précisément AssemblyName.g.ressources), en Outre, si vous avez les attributs appropriés sur la racine XAML élément dans le fichier, il va créer un bla.g.cs fichier qui contiendra une classe partielle de la "codebehind" pour cette page; il s'agit essentiellement d'un appel à la BAML goop afin de réhydrater le fichier dans la mémoire, et afin de définir des variables de membre de votre classe à la désormais les éléments créés (par exemple, si vous mettez x:Name="foo" sur un élément, vous serez en mesure de le faire.foo.Fond = Violet; ou similaire.

ApplicationDefinition -- semblable à la Page, sauf qu'il va onestep d'autres personnes, et définit le point d'entrée de votre application qui va instancier votre application objet, appel exécuter sur elle, qui seront ensuite instancier le type défini par l'StartupUri de la propriété, et donnera à votre mainwindow.

Aussi, pour être clair, cette question est globalement infinité dans les résultats d'ensemble; n'importe qui peut définir d'autres BuildActions seulement par la construction d'une Tâche MSBuild. Si vous regardez dans le dossier %systemroot%\Microsoft.net\framework\v{version}\ répertoire, et de regarder la Microsoft.Commun.les objectifs de fichier, vous devriez être en mesure de déchiffrer beaucoup plus (par exemple, avec VS Pro et au-dessus, il y a une "Ombre" de l'action qui permet de créer des accesseurs privés pour les aider avec les tests unitaires des cours privés.

35voto

Gerard ONeill Points 319

VS2010 a une propriété pour "Construire l'Action", et aussi pour "Copier vers un Répertoire de Sortie'. Pour qu'une action de 'None' sera toujours copier sur le répertoire de compilation si la copie de la propriété est définie sur "Copier si plus Récent" ou "Copier".

Ainsi, une Action de génération de Contenu devrait être réservé pour indiquer le contenu, vous aurez accès via l'Application.GetContentStream'

J'ai utilisé le 'Build Action' valeur 'None' et de la 'Copie de Sortie Répertoire' définition de "Copier si plus Récent" pour certains de liens externes .config comprend.

G.

7voto

rudigrobler Points 8883

Mon préféré de construction de la nouvelle action est SplashScreen! Lire plus à ce sujet ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X