Lorsqu'une seule propriété contient des points-virgules, Msbuild analyse automatiquement la propriété dans une liste de propriétés lorsqu'il est utilisé dans un groupe d'éléments. Voici un extrait de mon projet:
foreach (string property in Properties) { // Properties array parsed to pieces }
3 Réponses :
AFAICS, vous pouvez échapper au point-virgule dans la propriété $ (ConnectionsRing) comme: ou utiliser une tâche pour remplacer le ";" dans la propriété ConnectionsRing à '% 3B', puis utilisez cette propriété dans l'élément InstallShieldProperties. P> L'autre sens pourrait être de modifier le type de propriété dans la tâche personnalisée de la chaîne [] à la chaîne, puis de la scinder vous-même, comme vous le voulez. Vous pouvez utiliser des citations joignées pour séparer la partie de chaîne de connexion à partir d'autres paires de touches / valeur. P> ou si c'est logique pour votre tâche personnalisée, alors peut-être que la chaîne de connexion est une propriété assez spéciale pour avoir une propriété de tâche distincte. . p> p>
in Msbuild 4.0, il existe maintenant Fonctions de propriété . Une chose qui vous permet de faire est d'appeler des méthodes d'instance de chaîne .net directement sur vos propriétés comme si elles sont des cordes (elles sont).
Dans votre exemple, au lieu d'utiliser: P>
$(ConnectionString.Replace(';', '%3B'))
in msbuild 4.0, vous pouvez utiliser $ ([msbuild] :: évasion ($ (Connectionstring))) code>. p>
Très utile! Et Voici un lien vers la documentation de fonctions de propriété .