21 Stimmen

MSBuild Eigenschafts-Substring vor Unterstrich-Symbol erhalten

In MSBuild habe ich eine Eigenschaft, deren Wert Name_Something ist. Wie kann ich den Namensteil dieser Eigenschaft erhalten?

41voto

Julien Hoarau Punkte 47065

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

-3voto

Todd Punkte 4827

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.

-4voto

Filburt Punkte 16839

Es sieht so aus, als könntest du stattdessen Element-Metadaten anstelle einer Eigenschaft verwenden:

        YourName
        Foo

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X