Quels sont les différents paramètres de" Build action " dans les propriétés du projet Visual Studio et que font-ils?

pour la plupart, vous prenez ce que Visual Studio met par défaut pour vous... Je fais référence à la propriété BuildAction pour chaque fichier sélectionné dans Solution Explorer. Il y a un certain nombre d'options et il est difficile de savoir ce que chacune d'entre elles va faire.

769
demandé sur Peter Mortensen 2008-09-28 16:15:38

7 réponses

  • aucun : le fichier n'est pas inclus dans le groupe de sortie du projet et n'est pas compilé dans le processus de construction. Un exemple est un fichier texte qui contient de la documentation, comme un fichier Readme.

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

  • Contenu : vous permet de récupérer un fichier (dans le même répertoire que l'assemblage) en tant que flux via Application.GetContentStream (URI). Pour que cette méthode fonctionne, il faut un attribut personnalisé AssemblyAssociatedContentFile que Visual Studio ajoute gracieusement lorsque vous marquez un fichier en tant que" Content "

  • ressource Incorporée : Incorpore le fichier dans un exclusif de l'assemblée manifeste de ressources.

  • Resource (WPF seulement) : incorpore le fichier dans un manifeste d'assemblage partagé (par tous les fichiers de l'assemblage avec un paramètre similaire) nommé AppName.g.les ressources.

  • Page (WPF seulement) : utilisé pour compiler un fichier xaml en baml . Le baml est alors incorporé avec la même technique que le Resource (c'est-à-dire disponible en "AppName.G. ressources)

  • définition de la demande (WPF seulement) : marquez le fichier XAML/class qui définit votre demande. Vous spécifiez le code-behind avec x: Class= " Namespace.ClassName" et définir la forme/page de démarrage avec StartupUri= " Window1.xaml "

  • SplashScreen (WPF seulement) : une image qui est marquée comme SplashScreen s'affiche automatiquement lorsqu'une application WPF charge, puis se fane

  • 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)

  • Designdatawithdesigntimecreeabletypes : compile XAML viewmodels so that usercontrols can être visionné avec des données d'échantillon Dans Visual Studio (utilise les types réels)

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

  • CodeAnalysisDictionary : un fichier XML contenant custom word dictionary pour les règles de l'orthographe

908
répondu Gishu 2018-03-28 05:26:38

dans la documentation:

la propriété BuildAction indique ce que Visual Studio Fait avec un fichier lorsqu'une construction est exécutée. BuildAction peut avoir une des valeurs suivantes:

Aucune - le fichier n'est pas inclus dans groupe de résultats du projet et n'est pas compilé dans le processus de construction. Un exemple est un fichier texte qui contient documentation, comme 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 - Le fichier n'est pas compilé, mais est inclus dans la sortie de contenu groupe. Par exemple, ce réglage est la valeur par défaut pour un .htm ou d'autres genre de fichier Web.

ressource intégrée - ce fichier est intégré dans la construction du projet principal sortie comme une DLL ou un fichier exécutable. Il est généralement utilisé pour les fichiers de ressources.

106
répondu Paul Batum 2008-09-28 12:20:35

Page -- prend le fichier XAML spécifié, et compile dans BAML, et intègre cette sortie dans le flux de ressources gérées pour votre assemblage (spécifiquement AssemblyName.G. ressources), de plus, si vous avez les attributs appropriés sur l'élément root XAML dans le fichier, il créera un bla.G. fichier cs, qui contiendra une classe partielle du "codebehind" pour cette page; cela implique essentiellement un appel au BAML goop pour réhydrater le fichier dans la mémoire, et de définir l'un des membres variables de votre classe aux éléments maintenant 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 -- similaire à Page, sauf qu'il va onestep furthur, et définit le point d'entrée pour votre application qui instanciera votre objet app, call run on it, qui instanciera alors le type défini par la propriété StartupUri, et donnera votre mainwindow.

aussi, à être clairement, cette question dans l'ensemble est infinate dans son jeu de résultats; n'importe qui peut définir des actions build additionnelles juste en construisant une tâche MSBuild. Si vous regardez dans le %systemroot%\Microsoft.net \ framework\v {version}\ directory, et regardez Microsoft.Commun.targets file, vous devriez être en mesure de déchiffrer beaucoup plus (exemple, avec VS Pro et ci-dessus, il y a une action "Shadow" qui vous permet de générer des accesseurs privés pour aider avec les classes privées de test de l'unité.

34
répondu Dominic Hopton 2008-09-28 16:12:14

VS2010 possède une propriété pour 'Build Action', et aussi pour 'Copy to Output Directory'. Ainsi, une action de ' None 'copiera toujours dans le répertoire de compilation si la propriété copy est définie à' Copy if Newer 'ou'Copy Always'.

donc une action de construction de 'Content' doit être réservée pour indiquer le contenu auquel vous accéderez via 'Application.GetContentStream "

j'ai utilisé le paramètre' Build Action 'de' None 'et le paramètre' Copy to Output Direcotry ' de "Copier Si plus récent" pour certains externes liés .config comprend.

G.

25
répondu Gerard ONeill 2013-04-09 21:37:14

Dans VS2008, le doc entrée qui semble le plus utile est:

Windows Presentation Foundation Building a WPF Application (WPF)

ms-help: / / MS.VSCC.v90 / MS. MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

définition de L'application Identifie le fichier XAML markup qui contient la définition de la demande (un fichier XAML markup dont L'élément racine est Application). ApplicationDefinition est obligatoire quand Install est true et que OutputType est winexe. Une application WPF et, par conséquent, un projet MSBuild ne peuvent avoir qu'une définition D'application.

Page Identifie un fichier XAML markup dont le contenu est converti en format binaire et compilé dans un assemblage. Les éléments de Page sont généralement implémentés en conjonction avec une classe code-behind.

les éléments de Page les plus courants sont les fichiers XAML dont les éléments de premier niveau sont les suivants::

Window (System.Windows..::.Window).

Page (System.Windows.Controls..::.Page).

PageFunction (System.Windows.Navigation..::.PageFunction<(Of <(T>)>)).

ResourceDictionary (System.Windows..::.ResourceDictionary).

FlowDocument (System.Windows.Documents..::.FlowDocument).

UserControl (System.Windows.Controls..::.UserControl).

ressource Identifie un fichier de ressources compilé dans un assemblage d'applications. Comme nous l'avons déjà mentionné, la culture traite des ressources.

contenu Identifie un fichier de contenu distribué avec une application. Les métadonnées qui décrivent le fichier de contenu sont compilées dans l'application (à l'aide de la Contributioncontentfileassociée en assemblé).

5
répondu James Moore 2012-06-15 12:36:36

que dire de cette page de Microsoft Connect (expliquant les types DesignData et Designdatawithdesigntimecreatable). Citant:

ce qui suit décrit les deux actions de construction pour les fichiers de données D'échantillon.

les données de l'Échantillon .les fichiers xaml doivent être affectés à L'une des actions de compilation suivantes:

DesignData : les types de données D'échantillon seront créés en tant que types faux. Utilisez cette action de construction lorsque les types de données d'échantillon ne sont pas créables ou ont des propriétés en lecture seule que vous voulez définir des valeurs de données d'échantillon pour.

Designdatawithdesigntimecreeabletypes : les types de données D'échantillon seront créés en utilisant les types définis dans le fichier de données d'échantillon. Utilisez cette action de compilation lorsque les données de l'échantillon les types sont créables en utilisant leur constructeur vide par défaut.

pas donc incroyablement exhaustif, mais il donne au moins un indice. Ce MSDN procédure pas à pas donne aussi quelques idées. Je ne sais pas si ces actions de construction sont également applicables pour les projets Non-Silverlight.

4
répondu Per Lundberg 2013-10-10 07:01:45
  • Faux: la Part de Microsoft de Faux (Test de l'Unité d'Isolement). Non disponible sur toutes les versions de Visual Studio. Les contrefaçons sont utilisées pour supporter les tests unitaires dans votre projet, vous aidant à isoler le code que vous testez en remplaçant d'autres parties de l'application par des talons ou des cales. Plus ici: https://msdn.microsoft.com/en-us/library/hh549175.aspx
3
répondu Jorge Garcia 2016-01-26 15:53:37