NSIS 安装程序运行 PS1 脚本.该脚本尝试安装 NuGet,但将其安装在 x86 程序文件中?



我有一个NSIS安装程序,它运行一个ps1文件来安装一堆东西并设置网络配置。

当它运行脚本时,它将NuGet安装到ProgramFilesx86中,由于某种原因,当我调用"安装模块xNetworking"时,它找不到它,但如果它安装在ProgramFiles目录中,它就可以正常工作。

我在 nsi 文件中有 SetRegView 64 选项。

为什么 NuGet 安装在 32 位目录中而不是 64 位目录中?我缺少一个选项吗?

安装 nuget 的命令只是"Install-PackageProvider NuGet -force"

文件系统重定向器会将 32 位应用程序重定向到 64 位 Windows 上的 32 位程序文件目录。

!include x64.nsh
RequestExecutionLevel Admin
Section
StrCpy $InstDir $ProgramFiles32
${If} ${RunningX64}
StrCpy $InstDir $ProgramFiles64
${EndIf}
${DisableX64FSRedirection}
SetOutPath $InstDir
File NativeThing.ps1
${EnableX64FSRedirection}
SectionEnd

如果要从安装程序启动 powershell,则可能必须确保也使用 64 位 powershell。

最新更新