Using nuget.exe in Visual Studio 2017

In earlier versions of Visual Studio before 2017 I used to create nuget packages by adding a new post-build event that deleted the old nupkg file and created a new package by invoking nuget.exe:

nuget pack "$(ProjectPath)"

This suddenly stopped working in Visual Studio 2017 – I got an error 9009 on this line, meaning that nuget.exe was not found by Visual Studio 2017. So I obtained the latest copy of nuget.exe and put it in C:\Windows\System32, executing it on the Windows console to make sure it was in the Path. It worked. But guess what? The error was still there in Visual Studio and the Visual Studio nuget console.

To make a long story short: As Visual Studio 2017 is still 32-bit, you need to place nuget.exe in C:\Windows\System32\SysWOW64 to make it work…


Windows PATH revisited

Previously I wrote a post about making sure the Windows PATH environment variable doesn’t exceed a certain length.

I found out it’s possible to use other environment variables to help you shorten the path. For example, you could store the C:\Program Files (x86) prefix in a new environment variable name PA1 and the C:\Program Files prefix in PA2.

You can then write %PA1%\Microsoft\… instead of C:\Program Files (x86)\Microsoft\… in your PATH variable.

NOTE: The new environment variables must be parsed by the system before the PATH variable, which also means they must appear before PATH when sorted alphabetically.


Always watch your PATH

For a couple of days I’ve had major trouble with my work notebook. After installing new Visual Studios (2012 and 2013), all of a sudden various system software stopped working.

For example several applications could no longer be started using the pinned icons in the task bar. Also, when trying to invoke some system dialogs in the Control Panel I got error messages like %windir%\system32\xyz.exe was not found. Or the strange fact that all the entries in the Start Menu lost their symbols…

After some days of much cursing and swearing, several attempts of restoring previous Restore Points, etc., I got a hint that solved my problem:

The content of the PATH environment variable may not be longer than 2048 characters! If it is, neither the PATH variable, nor any other %..% system variable will work.

I shortened the path, rebooted, problem solved. Welcome to Windows 7, where the PATH variable is still limited in length…