Для выполнения процессов, требующих 64-битной операции, я обнаружил, что выполнение NSIS по умолчанию не будет автоматически выполняться в 64-битном режиме. Я столкнулся с этим при попытке запустить DISM для установки .NET Framework 3.5. DISM выдаст ошибку:
"Вы не можете обслуживать работающую 64-битную операционную систему с 32-битной
версия DISM. "
Для разрешения я добавил, необходимо добавить DisableX64FSRedirection
перед вызовом, который требует 64-битной операции. См. Ниже, например:
${If} ${RunningX64}
${DisableX64FSRedirection}
DetailPrint "Disabling Windows 64-bit file system redirection"
${EndIf}
nsExec::ExecToStack 'Dism.exe /Online /Enable-Feature /FeatureName:NetFx3'
${If} ${RunningX64}
${EnableX64FSRedirection}
DetailPrint "Re-enabling Windows 64-bit file system redirection"
${EndIf}