我有一个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。