Auf 64-Bit-Windows gibt es two system32 directories, eine für 32-Bit-.DLLs und eine für 64-Bit-.DLLs. 64-Bit-Programme (einschließlich Explorer) sehen den tatsächlichen Namen des 32-Bit-Verzeichnisses system32; SysWOW64. Das echte Verzeichnisverzeichnis system32 ist vor 32-Bit-Programmen verborgen.
So installieren Sie immer auf den „echten“/native System32 Ordner müssen Sie disable the redirection:
RequestExecutionLevel Admin
!include x64.nsh
Section
SetOutPath $SysDir
${If} ${RunningX64}
${DisableX64FSRedirection}
File "myfiles\64\file.dll" ; Install 64-bit file on 64-bit Windows
${EnableX64FSRedirection}
${Else}
File "myfiles\32\file.dll" ; Install 32-bit file on 32-bit Windows
${EndIf}
SectionEnd
Wenn Ihr .DLL- immer 32-Bit ist dann haben Sie nichts zu tun Besonderes:
RequestExecutionLevel Admin
Section
SetOutPath $SysDir
File "myfiles\file.dll" ; Install 32-bit file
SectionEnd
Die Installation Ihrer Dateien in System32 wurde seit fast 20 Jahren abgeraten und Sie sollten wirklich $COMMONFILES
oder $PROGRAMFILES\<company name>\Shared Files
verwenden.
Stellen Sie sich vor, was passiert if two verschiedene Software-Hersteller entscheiden beide, dass sie Python27.dll in System32 installieren müssen ?! Wenn Sie trotzdem darauf bestehen, sollten Sie mindestens Library.nsh
verwenden, um die Datei zu installieren, damit SharedDLLs
richtig eingestellt wird.
Ich denke nicht, dass dies eine gute Lösung ist, versuchen Sie, den Benutzer über die Voraussetzungen Ihrer App zu informieren und ihn auffordern, die Python-Version für Ihre App zu installieren. Sie können das offizielle Python-Installationsprogramm in Ihr Installationsprogramm aufnehmen, damit der Benutzer es direkt installieren kann, oder Sie können es starten, wenn der Benutzer die Installation überprüft hat. Vergessen Sie nicht, auch zu überprüfen, ob diese Version bereits vorhanden ist oder nicht, oder ob es eine andere Version gibt, die Ihre App ausführen kann. Ich hoffe das hilft. Wenn Sie Ihre Methode folgen müssen: 'Abschnitt "nameofsection" SetOutPath $ SYSDIR File "python27.dll" SectionEnd' – mohessaid
OutFile "installer.exe" SetOverwrite auf # definieren Installationsverzeichnis InstallDir $ DESKTOP # Zum Entfernen Verknüpfung im Startmenü in Windows 7 RequestExecutionLevel Admin ! include MUI2.nsh ! include UAC.nsh # start Standardabschnitt Abschnitt "nameofsection" \t SetOutPath $ SYSDIR \t File "python27.dll" SectionEnd Es tut nichts –
Wie kann ich die offizielle Python-Installation in meinem Skript verwenden, wenn Sie mehr erklären können Neu zu Nsis –