3 Stimmen

"Bedingte" Makros in der Eigenschaftsverwaltung von Visual Studio 2010

Der Eigenschaftsmanager erlaubt es, verschiedene Eigenschaftssätze für verschiedene Konfigurationen zu haben - zum Beispiel Release und Debug.

Das bedeutet jedoch immer noch, dass Sie jede Eigenschaftsdatei manuell jeder Konfiguration zuordnen müssen.

Gibt es eine Methode zur automatischen Zuweisung eines Eigenschaftssatzes zu einem Projekt auf der Grundlage einiger Parameter (wie Konfiguration oder Plattform)

ein konkretes Beispiel: Ich habe eine Lösung mit vielen Unterprojekten. Diese Projekte hängen von verschiedenen externen Bibliotheken ab. Für jede externe Bibliothek habe ich eine .props-Datei mit den entsprechenden Verzeichnissen und anderen Parametern (include, lib, dll's...)

In einigen Fällen können die Verzeichnisnamen einfach mit Hilfe der Standardmakros wie $(Configuration), $(Platform) usw. erstellt werden. Einige Bibliotheken werden jedoch mit einer weniger standardisierten und konsistenten Namenskonvention geliefert. Für diese Fälle erstelle ich .props-Dateien, die spezifisch für eine Konfiguration sind (Debug \Release ) - aber es erfordert eine mühsame und fehleranfällige Zuordnung der Mitarbeiter zu den einzelnen Projekten.

1voto

Paul Michalik Punkte 4256

Dies ist zumindest im Prinzip möglich, siehe ce poste zum Beispiel. Ich habe jedoch keine praktische Möglichkeit gefunden, die gesamte Leistungsfähigkeit von MSBuild in Kombination mit C++-Projekten innerhalb der IDE zu nutzen. Unabhängig davon, welche intelligenten MSBuild-Ausdrücke Sie in Ihr Eigenschaftsblatt schreiben, sobald Sie den Eigenschaftsverwaltungsdialog in der IDE aufrufen, wird alles entweder mit Standardwerten oder den von dort abgeleiteten Werten überschrieben. Dies ist ein merkwürdiges Verhalten und unterscheidet sich völlig von anderen Projekttypen. Es sieht so aus, als wollten sie einfach den alten, vor-MSBuild üblichen Stil der Bearbeitung von VCProjects beibehalten...

-1voto

Oded Punkte 475566

Sie können eine Makro und verwenden Sie VBA, um diese auf Knopfdruck zu erstellen/zu generieren.

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