Autor |
Beitrag |
danielf
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Do 17.10.13 10:42
Hallo,
ich verwende xsltc ( msdn.microsoft.com/e...brary/bb399405.aspx), um ein Assembly aus einem style sheet zu genieren. Die Generierung würde ich gern als Target in mein Projekt aufnehmen. Leider lädt VS nicht die Umgebungsvariablen im exec (ruft nur cmd auf).
Wie lade ich die VS-Umgebungsvariablen? Das ganz soll "natürlich" von der VS und .NET-Version unabhängig sein.
Prinzipiell kann ich mit $(VS100COMNTOOLS)\vsvars32.bat die Umgebungsvariablen herstellen. Wie kombiniere ich das mit exec-Element?
Danke und Gruß
Daniel
|
|
jaenicke
Beiträge: 19273
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 17.10.13 11:25
Wie wäre es mit einer eigenen Batchdatei, die zuerst die vsvars32.bat aufruft und dann die xsltc.exe?
|
|
danielf
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Do 17.10.13 13:51
Hallo jaenicke,
Danke für deine Antwort.
Das hätte ich vielleicht dazu schreiben können. So ist es nämlich aktuell gelöst. Finde ich ziemlich umständlich für das ausführen eines einfachen commands. Für die Wartung muss man eh schon die Projekt-Datei öffnen (oder gibt's es da mittlerweile was von VS?). Wenn man dann noch für eine "banale" Ausführung noch eine Datei öffnen muss, um zu sehen was wirklich geschieht .... Da muss es doch was besseres geben - ist doch ein hausgemachtes Problem.
Gruß
Daniel
|
|
jaenicke
Beiträge: 19273
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 17.10.13 14:54
Ich weiß nicht, ob es auch direkt irgendwie geht.
Wenn du das direkt im Command sehen willst, übergebe den auszuführenden Befehl doch als Parameter an eine allgemeine Batchdatei, die die Variablen setzt und den übergebenen Befehl ausführt.
|
|
danielf
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Fr 18.10.13 10:34
Löst auch nicht das Problem, wenn man das Target framework ändert. Ok, man könnte das wieder als Parameter in die batch-File aufnehmen. Trotzdem muss man das batch-File mit schleppen und irgendwie läuft ja dann doch alles auf das batch-file raus.
Schade, dass es anscheinend nichts naheliegendes gibt (set target framework environment flag). Von hinten durch die Brust ins Knie macht meistens früher oder später wieder Probleme.
Naja, ich schließe das Thema, weil es ja "funktioniert".
Gruß
Daniel
|
|
danielf
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Fr 18.10.13 11:06
Und da kommt doch noch die Lösung!
DependsOnTargets="GetFrameworkPaths;GetTargetFrameworkVersion"
Wenn man diese Abhängigkeit einträgt, dann sind die Umgebungsvariable vom Framework SDK gesetzt.
Ohne Abhängigkeit:
Quelltext 1: 2: 3: 4: 5: 6:
| <Target Name="Xslt" > <Exec Command="echo FrameworkSDKDir: $(FrameworkSDKDir)"/> </Target> ------ Build started: Project: Project, Configuration: Debug Any CPU ------ FrameworkSDKDir: ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ========== |
Mit Abhängigkeit:
Quelltext 1: 2: 3: 4: 5:
| <Target Name="Xslt" DependsOnTargets="GetFrameworkPaths;GetTargetFrameworkVersion">
------ Build started: Project: Project, Configuration: Debug Any CPU ------ FrameworkSDKDir: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\ ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ========== |
Gruß
Daniel
|
|
|