2016-04-29 12 views
0

Ich habe ein eigenes Werkzeug, das ich auf bestimmte Dateitypen ausführen, um die .targets Mechanismus in Visual Studio 2015Wie verweisen Sie auf den Lösungsordner in .targets?

Projekte bestehen auf vielen Ebenen, und ich möchte mit diesem Tool verweisen, wenn der Code auf einem beliebigen Laufwerk gezogen wird/Ordner, einschließlich des TFS-CI-Agenten.

Ich habe versucht, einen relativen Pfad, aber da die Dateien auf verschiedenen Ebenen sind, funktioniert es nicht für alle Projekte.

Ich habe versucht, eine Registrierungseinstellung und Umgebungsvariable, aber das ist nicht gut für die CI-Maschine, die jedes Mal in einem anderen Ordner erstellen kann.

Ist es möglich, den Lösungsordner zu erhalten, in dem sich das Projekt/die Datei befindet, dann kann ich einen relativen Pfad zum Werkzeugverzeichnis verwenden?

Alles, was ich finden kann, ist diese Eigenschaften, die nicht zu helfen scheint: Allgemeine MSBuild Eigenschaften: https://msdn.microsoft.com/en-us/library/bb629394.aspx

https://msdn.microsoft.com/en-us/library/ms164309.aspx

Registry und Umgebungsvariablen: https://msdn.microsoft.com/en-us/library/ms171458.aspx

Antwort

0

Self-Service-Antwort: Bearbeitung Visual Studio-Eigenschaft für einen vcxproj in Präprozessormakros verwenden oder Pfade oder solche umfassen bei einer Reihe von verfügbaren Variablen zu suchen. Normalerweise finden Sie dort, was Sie brauchen, namentlich oder mit Beispiel, einschließlich des hier benötigten. Besser als jede Dokumentation.

+0

Ich denke, die Sache, die ich vielleicht nicht erklärt habe, ist, dass ich 50 Projekte in verschiedenen Tiefen der Ordnerstrukturen in der Lösung habe. Ich führe ein bestimmtes Tool für bestimmte Dateitypen aus, wenn es gefunden wird. Ich erreiche dies, indem ich eine .targets-Datei in die csproj-Dateien importiere. Dies zentralisiert die Logik, erfordert jedoch nicht projektive relative Pfade. Jedoch relativ zu $ ​​(SolutionDir) ist in Ordnung. Hast du ein Screenshotbeispiel von dem, worüber du sprichst? Ich habe gerade erst den Sprung von VS2010 zu VS2015 gemacht, so dass vielleicht ein Trick fehlt. – GilesDMiddleton

+0

Es gibt keinen Unterschied in den Tricks zwischen vs2010 und vs2015. Es sieht so aus, als ob Sie ein C++ - Projekt erstellen müssen, um dies zu tun. Wie ich schon sagte, vcxproj. Klicken Sie mit der rechten Maustaste auf Eigenschaften, Projekteigenschaften, Linkeigenschaften, Allgemein. Klicken Sie auf Abwärtspfeil auf Ausgabedatei und wählen Sie Bearbeiten. Klicken Sie auf Makros. Geben Sie Beispiele für Pfade ein, die Sie erwarten, oder raten Sie Keywords im Suchfilterfeld. und Sie können sehen, was sie alle auch bewerten. Einige davon sind in C# nicht sinnvoll, aber ich nehme an, dass SolutionDir (ich bin mir nicht sicher, aber du hast es gesagt) – zeromus

Verwandte Themen