nuget.exe in Visual Studio 2017 verwenden

In früheren Versionen von Visual Studio konnte ich nuget Packages erzeugen, indem ich ein Post-Build-Ereignis hinzufügt, das das alte Paket löschte und ein neues durch Aufrufen von nuget.exe erzeugte:

nuget pack "$(ProjectPath)"

Das hat mit einem Mal in Visual Studio 2017 nicht mehr funktioniert. Stattdessen begrüßte mich ein Fehler #9009 in der entsprechenden Zeile, was bedeutet, dass nuget.exe von Visual Studio nicht gefunden werden konnte. Ich kopierte die neueste Verson von nuget.exe in C:\Windows\System32 und konnte das Programm auch erfolgreich von der Windows Console aufrufen. Aber was soll ich sagen? Der Fehler in Visual Studio kam immernoch. Auch in der Visual Studio Nuget Console.

Langer Rede kurzer Sinn (und Facepalm): Da Visual Studio ein 32-bit Programm ist, muss nuget.exe natürlich in C:\Windows\System32\SysWOW64 um es zum Laufen zu kriegen…

Nochmal zum Windows PATH

Kürzlich habe ich schon einmal einen Beitrag geschrieben, in dem es darum ging, dass die PATH-Umgebungsvariable in Windows eine bestimmte Länge nicht überschreiten darf.

Die logische Konsequenz ist, andere Umgebungsvariablen zur Verkürzung heranzuziehen. Beispielsweise kann man das Präfix C:\Program Files (x86) in einer neuen Pfadvariablen namens PA1 und C:\Program Files in PA2 hinterlegen.

Dann kann man in der PATH-Variable %PA1%\Microsoft\… schreiben und muss nicht den kompletten Pfad C:\Program Files (x86)\Microsoft\… hinterlegen. Dies verkürzt den Inhalt der PATH-Variable.

Hinweis: Die neuen Umgebungsvariablen müssen vom System vor der PATH-Umgebungsvariablen verarbeitet werden, was bedeutet, dass sie bei alphanummerischer Sortierung vor der PATH-Umgebungsvariablen einsortiert werden müssen.

Achte auf Deinen Pfad

Ein paar Tage lang hatte ich arge Probleme mit meinem Arbeitsrechner. Nachdem ich die Visual Studio-Versionen 2012 und 2013 installiert hatte, funktionierten plötzlich nahezu alle Programme nicht mehr – auch die Systemsteuerung nicht.

Beispielsweise konnten einige in der Taskleiste angepinnten Programme nicht mehr gestartet werden. Auch beim Öffnen von Modulen der Systemsteuerung gab es Fehlermeldungen der Art %windir%\system32\xyz.exe wurde nicht gefunden. Oder, dass alle Einträge im Startmenü plötzlich keine Symbole mehr hatten…

Nach einigen Tagen böser Flüche und den vergeblichen Versuchen, alte Systemwiederherstellungspunkte wiederherzustellen, fand ich im Internet einen Hinweis, der schlussendlich zur Lösung des Problems führte:

Der Inhalt der Umgebungsvariablen PATH darf nicht länger sein als 2048 Zeichen! Falls er länger ist, funktioniert weder die PATH-Variable, noch andere %…%-Umgebungsvariablen des Systems.

Ich habe daraufhin den Inhalt gekürzt, neu gebootet – Problem gelöst. Willkommen in Windows 7, wo die Pfadvariable immernoch längenmäßig begrenzt ist…