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

时间:2020-01-07 21:04:09

标签: powershell nuget nsis

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

当运行脚本时,它将NuGet安装到ProgramFilesx86中,由于某种原因,当我调用“ Install-Module xNetworking”时,它找不到它,但是如果将其安装在ProgramFiles目录中,则可以正常工作。

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

为什么NuGet会安装在32位目录而不是64位目录中?有没有即时通讯选项?

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

1 个答案:

答案 0 :(得分:0)

File System Redirector将32位应用程序重定向到64位Windows上的32位Program Files目录。

!include x64.nsh
RequestExecutionLevel Admin

Section
StrCpy $InstDir $ProgramFiles32
${If} ${RunningX64}
StrCpy $InstDir $ProgramFiles64
${EndIf}
${DisableX64FSRedirection}
SetOutPath $InstDir
File NativeThing.ps1
${EnableX64FSRedirection}
SectionEnd

如果要从安装程序启动Powershell,则可能还必须make sure you are using 64-bit powershell