11
votes

Comment scinder la chaîne par plusieurs caractères de Msbuild 4?

J'ai la chaîne suivante appelée masterversion : xxx

J'ai besoin de le diviser par le. et le - donc il devient une chaîne stress [] appelé splitversion , à savoir: xxx

J'ai tout essayé Je peux penser à une douzaine de variations de la ci-dessous, sans joie: xxx

Quelle syntaxe Msbuild obscure suis-je en train de manquer / goudronner? >


0 commentaires

3 Réponses :


0
votes

Peut-être xxx

(MsBuild doit-il convertir automatiquement ceci en tableau)


1 commentaires

Erreur MSB4184: L'expression "" 1.1-Snapshot ".Split (., -)" ne peut pas être évalué. La chaîne d'entrée n'était pas dans un format correct.



-1
votes

Vous utilisez cette expression dans un groupe d'éléments, les groupes d'éléments sont utilisés pour collecter des artefacts requis pour la construction. Je pense que vous recherchez un groupe de propriété

Quelque chose comme ça xxx

Vous devez vous rappeler que les propriétés sont référencées dans MSbuild à l'aide du signe US $ (Dollar Sign). Les éléments sont référencés à l'aide du @ (au signe).

Selon le groupe de Masterversion, vous devez modifier le $ en @


3 commentaires

Cela n'utilise pas que vous ne pouvez pas avoir Inclure les attributs sur les propriétés.


Oui c'est juste qu'il devrait fonctionner lorsque vous l'utilisez comme $ (MasterVersionInin.split ('.', '-')


Non ça ne le fait pas. Tout d'abord, il manque une fermeture ')', puis voir ma réponse à propos de la suppression du tableau.



16
votes

MsBuild 4.0 Les fonctions de la propriété ne peuvent pas gérer les tableaux (bien fondamentalement), cependant, lorsque vous faites un

<PropertyGroup>
  <SplitVersion0>$(MasterVersion.Split($(DelimitersArray))[0])</SplitVersion0>
  <SplitVersion1>$(MasterVersion.Split($(DelimitersArray))[1])</SplitVersion1>
  <SplitVersion2>$(MasterVersion.Split($(DelimitersArray))[2])</SplitVersion2>
</PropertyGroup>


1 commentaires

Une fois que vous avez fait cela, quel est le contenu de splitversion ? Est-ce un tableau de iTaskitem , probablement? Comment pourrais-je accéder aux valeurs individuellement, disons par index?