Qu'est-ce que L'action de création de contenu dans Visual Studio?

Que fait l'Action Content Build dans Visual Studio? Il n'a pas l'air de faire quoi que ce soit.

L'article Propriétés du fichier sur MSDN dit:

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

Mais je n'ai aucune idée de ce que signifie le" groupe de sortie de contenu".

Est-ce quelque chose à propos de déploiement? Sens, l'action n'a aucun effet réel, lors de la construction, mais seulement plus tard, lors du déploiement?

40
demandé sur Martin Prikryl 2014-03-21 11:18:31

3 réponses

"Content" signifie qu'il s'agit d'un élément de projet déployable, il signale que le fichier doit être copié sur la machine cible.

Quelque chose que vous pouvez voir avec un projet simple en mode console. Projet + Ajouter un nouvel élément, choisissez le modèle D'élément de fichier Bitmap. Son action de construction est automatiquement définie sur "Contenu". Utilisez Projet + Propriétés, onglet Publier et cliquez sur le bouton fichiers D'Application. Notez comment le bitmap a été automatiquement ajouté à la liste des fichiers déployés:

entrez la description de l'image ici

Aller retour à la fenêtre Propriétés et changer son action de construction à aucun. Cliquez à nouveau sur le bouton et notez comment le fichier n'est plus inclus.

Également utilisé par les utilitaires d'installation qui s'intègrent avec VS pour exactement la même raison. Et un gros problème dans les applications web, ils ont généralement un beaucoup de fichiers qui doivent être déployés sur le serveur web.

25
répondu Hans Passant 2014-03-31 16:21:18

Après quelques tests et avec un indice de Quels sont les différents paramètres "Build action" dans les propriétés du projet Visual Studio et que font-ils?, j'ai trouvé que l'action de construction Content a un effet dans les projets WPF uniquement (éventuellement ASP aussi).

, Il ajoute

[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")]

À WpfApplication1_Content.g.cs. Lire sur le AssemblyAssociatedContentFileAttribute.

Dans les applications console ou WinForms, il ne fait rien (ni dans le code source ni dans le binaire de sortie).

Bien que dans le commentaire , à la question mentionnée précédemment, il y a une note sur l'effet sur le déploiement:

Notez également que le Contenu sera inclus lors de l'utilisation d'un clic deploy, mais aucun ne le sera même si "copier Si plus récent" est sélectionné.

Peut-être que cela fonctionne même pour les applications console et WinForms (Je n'ai pas essayé).

7
répondu Martin Prikryl 2018-08-20 14:55:19

Je pense que cela n'est pertinent que pour les projets C#. Voir l'image:

Contenu

Si vous définissez la "Copier le Répertoire de Sortie' à 'Copy' ou "Copier si plus récent', il va copier ce fichier dans le dossier de sortie lors de la construction. L'action effectuée lorsque vous appuyez sur 'Build (solution)' dépend de la propriété 'Build action'. D'après ce que je comprends du site Web de Microsoft, il copie simplement le fichier s'il s'agit d'un content fichier texte, html ou un autre fichier normal.

Quelles autres actions de construction ne me sont pas connues, cela semble être une option avancée.

La ligne du bas: il semble une fonctionnalité qui vous aide à garder la structure des dossiers et des fichiers organisés chaque build, de sorte qu'il est toujours prêt pour le déploiement. J'espère que cela vous donne une idée de la fonctionnalité.

4
répondu RB-Develop 2014-03-26 15:27:14