In MSBuild habe ich eine Eigenschaft, deren Wert Name_Something ist. Wie kann ich den Namensteil dieser Eigenschaft erhalten?
Antworten
Zu viele Anzeigen?Mit MSBuild 4
Wenn Sie MSBuild 4 verwenden, könnten Sie die neuen und glänzenden Eigenschaftsfunktionen verwenden.
Name_Something
$(MyProperty.Substring(0, $(MyProperty.IndexOf('_'))))
Mit MSBuild < 4
Sie könnten die RegexReplace
Aufgabe des MSBuild Community Task verwenden
Name_Something
Wenn ich Ihre Frage richtig verstehe, versuchen Sie, den Teil einer MSBuild-Eigenschaft zu erhalten. Es gibt keine direkte Möglichkeit zur Zeichenfolgenmanipulation in MSBuild, wie in NAnt. Sie haben also zwei Möglichkeiten:
1). Erstellen Sie separate Variablen für jeden Teil und kombinieren Sie sie:
Name
Something
$(Name)_$(Something)
Dies funktioniert gut, wenn die Teile im Voraus bekannt sind, aber nicht, wenn Sie dies dynamisch tun müssen.
2). Schreiben Sie eine benutzerdefinierte MSBuild-Aufgabe, die die Zeichenfolgenmanipulation durchführt. Dies wäre Ihre einzige Option, wenn dies zur Laufzeit erfolgen müsste.