Я создаю переменную Env и затем добавляю ее к переменной PATH в моем сценарии установки NSIS на Win7 - 64-разрядная версия.
Push "MyPath"
Push "D:\MyFolder\bin;D:\MyFolder\lib"
Call WriteEnvStr
Push "%MyPath%"
Call AddToPath
Теперь после установки я вижу обе переменные в приглашении cmd
MyPath=D:\MyFolder\bin;D:\MyFolder\lib
Path=%MyPath%;<my existsing path>
Но любые exe / dll из не найдены во время выполнения.
Если я запускаю командную строку с правами администратора, а затем запускаю exe, она работает нормально.
Это также работает, если я запускаю exe напрямую от имени администратора.
Также интересно то, что если я открою редактор среды, дважды щелкните переменную MyPath и нажму OK (без каких-либо изменений), мой exe-файл будет работать нормально, не работая от имени администратора.
И теперь, если я проверяю Path в командной строке cmd, переменная MyPath подставляется
MyPath=D:\MyFolder\bin;D:\MyFolder\lib
Path=D:\MyFolder\bin;D:\MyFolder\lib;<my existsing path>
Я пытался добавить «Call EnvVarUpdate» после создания переменной env, но она не работает.
Я использую NSIS Unicode версии 2.46.3