Je souhaite utiliser VersionTask à partir des tâches de communauté MSBuild pour définir le type de calcul Révision. Cependant, j'ai de la difficulté à comprendre comment câbler la tâche dans mon fichier csproj.Comment utiliser Msbuild.Community.Tasks.Version dans un fichier csproj
Le projet a un AssemblyInfo.cs qui a l'attribut suivant défini:
[assembly: AssemblyVersion("3.2.5.*")]
Ce que je veux faire est trop monter la génération du numéro de révision de manutention avec ma propre gestion personnalisée.
J'ai mis la tâche version personnalisée dans le fichier csproj comme suit:
<UsingTask TaskName="MyCo.Build.Tasks.Version" AssemblyFile="$(SolutionDir)\..\Build\.build\MyCo.Build.Tasks.dll" />
La tâche réelle est alors appelé comme suit:
<Target Name="BeforeBuild">
<Message Text="Setting Revision Number to $(BuildNumber)" />
<MyCo.Build.Tasks.Version RevisionType="BuildServerNumber" Revision="$(BuildNumber)" /></Target>
Je peux voir la cible BeforeBuild étant appelé parce que de la tâche de message, mais le fichier exe a toujours la numérotation générée standard comme suit: Version du fichier: 3.2.5.27547
Je m'attendais à quelque chose comme 3.2.5.1 11 (le numéro de build passé dans MSBuild en tant que paramètre). Comme la tâche Version remplace la gestion par défaut de la valeur '*' pour Révision, je ne pense pas qu'il soit nécessaire de modifier réellement le fichier AssemblyInfo.cs. Dois-je transmettre la valeur de sortie de la tâche Version dans un paramètre MSBuild? Dois-je réellement utiliser la tâche AssemblyVersion pour mettre à jour les valeurs dans le fichier?
Évidemment, j'essaie d'éviter d'avoir à changer le AssemblyInfo.cs, je veux juste remplacer la gestion des numéros de version.
Quelqu'un peut-il vous conseiller s'il vous plaît?
EDIT: Je viens de trouver l'exemple d'utilisation suivant dans le fichier chm du programme d'installation qui répond en partie à ma question.
<Version BuildType="Automatic" RevisionType="Automatic" Major="1" Minor="3" >
<Output TaskParameter="Major" PropertyName="Major" />
<Output TaskParameter="Minor" PropertyName="Minor" />
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
<Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
Cependant, quand je lance la construction que je peux sortie généré Version Assemblée dans une tâche de message, mais le fichier exe a encore la révision par défaut comme avant