Comment puis-je associer une action de construction personnalisée par défaut à un type de fichier personnalisé dans Visual Studio?

StackOverflow https://stackoverflow.com/questions/1067247

Question

J'ai un service linguistique que j'ai construit pour un type de fichier personnalisé.

En outre, j'ai créé une cible personnalisée (construire une action) dans mes fichiers projet MSBuild. Je suis cependant incapable de trouver un moyen d'associer cette action de construction par défaut à mon extension de fichier personnalisé.

Par exemple, si vous ajoutez un fichier .cs, les valeurs par défaut d'action de construction de « compiler ». Je voudrais faire la même chose pour moi. à savoir lors de l'ajout d'un fichier .dsl Je voudrais l'action de construction pour être « Générer », ce qui est mon objectif personnalisé (et donc construire une action).

Est-il possible sans l'aide d'un assistant d'article?

Était-ce utile?

La solution

Je pense que ce qui suit pourrait vous aider et d'autres qui sont désireux de faire des choses semblables.

Si votre objectif final est de générer du code / quelque chose quand quelque chose change dans votre fichier .dsl, alors je suggère que vous pouvez utiliser « CustomTool ». Il est une propriété sur tout élément de projet. Vous écrivez du code pour générer le code, enregistrer l'ensemble générateur, puis définissez la propriété customtool du fichier .dsl sur « MyDslToCsGenerator ».

Pour enregistrer l'outil personnalisé dans VS vous devez exécuter « regasm » utilitaire, disponible avec le framework .Net contre le MyDslToCsGenerator.dll


Je sais que vous avez dit que vous ne voulez pas utiliser l'assistant de modèle d'objet, mais si vous avez accès au modèle de fichier personnalisé, vous pouvez alors définir l'action de construction par défaut (voir 1er lien ci-dessous)

<ProjectItem SubType="" TargetFileName="$fileinputname$.dsl" 
ReplaceParameters="true" ItemType="Embedded Resource" 
CustomTool="MyDslToCsGenerator">MyFile.dsl</ProjectItem>

Vous pouvez aussi le faire par programme avec DTE (projectItem.Properties.Item("ItemType").Value = "MyOwnBuildActionChoice") comme expliqué dans le 2ème lien ci-dessous

Liens utiles:

  1. Comment configurer la construire action pour un élément créé par un modèle d'élément Visual studio?
  2. Utiliser DTE pour définir une version personnalisée l'action

Autres conseils

ne suis pas sûr « Generate », que je suppose est votre « action build personnalisé » -. Mais, je suis en mesure de mettre toute action de construction requis par programmation de l'API du moteur de construction, dans une tâche de construction

Alors disons que le fichier a construire une action réglée sur « compilez », vous pouvez facilement changer à tout ce que vous aimez lors de l'exécution (temps de construction) - dans mon cas je l'ai mis à « ressource incorporée ». Ceci est possible en associant un fichier cible personnalisée, qui exécute le code de la tâche de construction, vous pouvez écrire.

Faites-moi savoir si ce n'est pas clair, je peux expliquer davantage, si vous êtes intéressé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top