Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3956|Antwoord: 6

NSIS (1) Maak een eenvoudige installer

[Link kopiëren]
Geplaatst op 28-01-2024 09:42:28 | | | |
Vereisten: Een applicatie ontwikkeld met Winform en wilde een installer maken om deze applicatie te installeren en uit te voeren, wat aantoont dat het product formeler is.

Inleiding tot NSIS

NSIS (Nullsoft Scriptable Install System) is een professioneel open-source systeem voor het maken van Windows-installaties. Het is ontworpen om zo klein en flexibel mogelijk te zijn, waardoor het ideaal is voor internetdistributie.

Als de eerste ervaring van een gebruiker met een product is een stabiele en betrouwbare installer een belangrijk onderdeel van succesvolle software. Met NSIS kun je zo'n installer maken die alle benodigde bewerkingen voor software kan uitvoeren.

NSIS is script-gebaseerd, waardoor je logica kunt creëren om de meest complexe installatietaken uit te voeren. Er zijn al veel plugins en scripts beschikbaar: je kunt webinstallers maken, communiceren met Windows en andere softwarecomponenten, gedeelde componenten installeren of bijwerken, en meer.


NSIS downloaden:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.

NSIS-plugins:De hyperlink-login is zichtbaar.

HM NIS EDIT download:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.

HM NIS EDIT: Gratis NSIS Editor/IDE: HM NIS Edit is de beste editor/IDE voor het Nullsoft Script Installation System (NSIS). Het is erg nuttig voor experts en beginners die NSIS gebruiken om installers te maken. De scriptwizard helpt je met slechts een paar klikken een standaard installer te maken, en de InstallOptions-designer helpt je je eigen aangepaste pagina's te maken met een gebruiksvriendelijke drag-and-drop-interface.

Download en installeer

Download de NSIS- en HM NIS EDIT-software, installeer eerst NSIS en installeer daarna HM NIS EDIT, zoals hieronder weergegeven:



Maak een installatiepakket

Maak een nieuwe Winform-applicatie aan, gebruik de IDE-tool om een nieuwe Winform-applicatie van .NET framework 4.7.2 (weggelaten), compileer deze en gebruik NSIS om een installatiepakket te maken.

Open de HM NIS EDIT-tool en selecteer File-> New Script: Wizard, zoals hieronder weergegeven:



Pas de applicatie-informatie aan op uw werkelijke situatie, zoals weergegeven in de onderstaande figuur:



Vink "Engels" uit en selecteer "Vereenvoudigd Chinees" zoals weergegeven in de volgende figuur:



Stel het autorisatiebestand in zoals weergegeven in de volgende figuur:



Specificeer het applicatiebestand, verwijder de bestaande configuratie en voeg vervolgens onze applicatiemap toe zoals te zien is in de onderstaande figuur:




Klik op Volgende, zoals hieronder getoond:



Vul alstublieft het programma, de parameters en zelfrapportage in volgens uw eigen situatie, zoals weergegeven in de onderstaande figuur:



Verwijder de programmaconfiguratie zoals weergegeven in de volgende figuur:



De laatste stap is het opslaan als test.nsi-script voor de volgende compilatie, zoals hieronder weergegeven:



Compileer het script en genereer het installatiepakket zoals getoond in de onderstaande figuur:



Voeg de test.nsi-code bij:

(Einde)





Vorig:Ontdek onderwerpen in de .Net Reactive Responsive Extension
Volgend:NSIS (ii) mutex garandeert dat er slechts één installer draait
 Huisbaas| Geplaatst op 28-01-2024 10:09:14 |

functiebetekenis
AfdelingDe meest basale functie vertegenwoordigt een afdeling, gebruikt om een component te vertegenwoordigen die geïnstalleerd moet worden; de inhoud van de sectie is het laatste deel van het programma dat wordt uitgevoerd behalve het verwijderen, maar het zal als eerste controleren bij het compileren zijn; als er geen sectie of functie in het programma is, wordt de compilatie beëindigd en moet het codeblok in de sectie worden ingesprongen in 2 spaties
FunctieDe uitgevoerde functie moet ook worden ingesprongen, de functienaam wordt herkend, als deze als speciale naam wordt herkend, wordt dit onder specifieke omstandigheden uitgevoerd, wat hieronder wordt uitgelegd
SectionEndGeeft het einde van de afdeling aan, niet ingesprongen binnen de sectie
FunctionEndGeeft het einde van de functie aan, hetzelfde als hierboven
SetCompressorStel het compressiealgoritme in, de volgende parameters zijn het compressiealgoritme in de wizard, solide gebruik /SOLID als voorvoegsel, bijvoorbeeld, het solide lzma-algoritme wordt geschreven als /SOLID lzma
SetCompressorStel de grootte van het gecomprimeerde volume in, gevolgd door een getal, en het maakt meestal niet uit als je het niet schrijft
OutFileBepaal het pad van het gecompileerde installatiepakket (het pad van toekomstige installatiepakketten, niet in welke map je het plaatst)
NaamStel de naam van het product in, meestal de applicatienaam + appversie die in de eerste stap van de wizard wordt geschreven
InstallDirGeeft het standaard installatiepad voor, dat wordt ingevuld in de eerste regel van de vierde stap van de wizard, die de waarde van $INSTDIR
ShowInstDetailsDe parameters zijn niet simpelweg true and false, maar show, hide and nevershow, wat aangeeft dat de details automatisch worden weergegeven, de gebruikersknop de details toont en de installatiedetails niet zichtbaar zijn
ShowUnInstDetailsGeeft aan of de deïnstalleerde details worden weergegeven en de parameters zijn hetzelfde als hierboven
BrandingTextToont de informatie onderaan het installatiepakket, dat wil zeggen de laatste regel aangepaste tekst in de eerste stap van de wizard, die twee parameters kan accepteren: één is de te tonen tekst, en de optionele parameter is /TRIM, die de richting van de tekstuitlijning kan bepalen (LINKS, RECHTS of MIDDEN, standaard is LINKS, /TRIMLEFT, /TRIMRIGHT of /TRIMCENTER moet worden geschreven, zonder enige scheiding ertussen)
SetOutPathHet kan alleen op de eerste regel van de Sectie worden geschreven, die de installatielocatie bepaalt van de component die door de Sectie wordt weergegeven. Anders dan InstallDir, SetOutPath laat verschillende componenten in verschillende submappen van de totale installatiemap installeren, het wordt aanbevolen om deze in te stellen op $INSTDIR\-map met de componentnaam (of als de componenten onderling afhankelijk zijn, kun je het componentpad apart aanpassen)
SetOverWriteHet kan alleen worden geschreven in Section, dat wordt gebruikt om in te stellen of overschrijven moet worden wanneer geïnstalleerd, en de parameters kunnen worden ingesteld op altijd overschrijven (aan), nooit overschrijven (uit), overschrijven wanneer nieuwer (ifnewer), overschrijven wanneer de bestandsinhoud anders is (ifdiff) en proberen te overschrijven (try), overeenkomend met de vijfde stap van de wizard > het bewerken van mapitems
BestandHet kan alleen in Section worden geschreven, wat betekent dat de Section bestanden bevat en verpakt bestanden, en de /r escaping-parameter vertegenwoordigt bestanden en mappen met subdirectories, en de bijbehorende wizard-stappen zijn hetzelfde als hierboven. De parameter /x wordt gebruikt om bestanden uit te sluiten, je kunt /x "*.ico" "xxx\*" schrijven, wat betekent dat je ICO-bestanden uitsluit en alle bestanden in de xxx-subdirectory uitsluit, overeenkomend met stap 5 van de wizard
CreateDictionaryMaak een map aan, gevolgd door het volledige of relatieve pad van de map
CreateShortcutMaak een snelkoppeling aan, de eerste is het pad van de snelkoppeling (achtervoegsel .lnk), en de tweede is het pad van de snelkoppeling naar het bestand, overeenkomend met het onderste deel van stap 6 van de wizard
WriteUninstallerMaak een uninstaller aan gevolgd door de padnaam van de uninstaller
WriteRegStrSchrijf naar het register, dat over het algemeen niet hoeft te worden gewijzigd, volg gewoon de wizard om te genereren
VerwijderenMeestal verwijder je in het deïnstalleergedeelte één bestand, gevolgd door het pad van het verwijderde bestand, omdat het een enkel bestand is, kun je /r niet toevoegen
RMDirMeestal verwijder je in het deïnstalleergedeelte de map en alle bestanden in de map, gevolgd door het pad van de verwijderde map, de eerste moet meestal handmatig /r toevoegen, de wizard heeft het niet aan jou toegevoegd, als je het niet toevoegt, wordt het residu verwijderd, het is het beste om dit commando één keer voor elke submap te schrijven, je moet /r toevoegen en tenslotte de algemene map RMDir "$INSTDIR" verwijderen.
DeleteRegKeyOm de registerinformatie te verwijderen, kun je meestal de wizard volgen om deze te genereren
SetAutoCloseHet kan alleen in de sectie worden geschreven, waarin wordt aangegeven of het automatisch naar de voltooiingsinterface springt nadat de installatie is voltooid, met de parameters waar en onwaar
AutoCloseWindowHet lijkt geen effect te hebben, de functie lijkt hetzelfde als de vorige, maar kan buiten de sectie worden geschreven, en de parameters zijn hetzelfde als hierboven
MessageboxHet berichtvenster kan alleen in Sectie of functie worden geschreven, er zijn veel parameters, waaronder weergaveinformatie, displaywaarschuwing, ask ja nee, ask okcancelretry, enz., voer Messagebox in VNISEdit in om een lijst van alle parameters te krijgen, en verbind vervolgens de inhoud die in het berichtvak wordt weergegeven
Aborterenblokkeren, wachten op een antwoord van de gebruiker
HideWindowVerborgen venster, meestal gebruikt om Section te verwijderen, verwijdert de deinstaller zichzelf eerst, verwijdert daarna andere bestanden (ja, het programma draait nog steeds), en sluit het venster automatisch na verwijdering


 Huisbaas| Geplaatst op 28-01-2024 11:07:28 |
Callback-functie

Callback-functie bij installatie

.onGUIInit
.onInit
.onGUIEnd
.onRebootFailed
.onSelChange
.onUserAbort
.onVerifyInstDir

Callback-functie bij deïnstalleren

un.onGUIInit
un.onInit
un.onUninstFailed
un.onUninstSuccess
un.onGUIEnd
un.onRebootFailed
un.onSelChange
un.onUserAbort


De details zijn als volgt:

onGUIInit:
De callback wordt aangeroepen voordat de eerste pagina laadt en het installer-venster wordt weergegeven, waarmee je de gebruikersinterface kunt aanpassen.

onInit:
Deze callback wordt aangeroepen wanneer de installer bijna klaar is met initialisatie. Als de .onInit-functie Abort aanroept, sluit de installer onmiddellijk af.

onInstFailed:
Deze callback-functie wordt aangeroepen wanneer de gebruiker op de "annuleren"-knop klikt na een installatiefout (als de installer geen bestanden kan vrijgeven, of als het installatiescript het Abort-commando gebruikt).

onInstSucces:
De callback wordt aangeroepen voordat de installatie succesvol is en het installatievenster sluit (als AutoCloseWindow of SetAutoClose op false is gezet, kan dit zijn nadat de gebruiker op "Sluiten" heeft geklikt).

onGUIEnd:
De callback wordt net na het sluiten van het installateurvenster aangeroepen. Gebruik om eventuele plugins die met de gebruikersinterface te maken hebben vrij te geven wanneer dat nodig is.

onMouseOverSection:
De callback wordt aangeroepen telkens wanneer de muis over het selectievak van de boomsectie beweegt. Dit stelt je in staat om voor elk segment een voorbeeldbeschrijving in te stellen. De ID van het huidige segment waar de muishover zich bevindt is tijdelijk opgeslagen op $0.

onRebootFailed:
Deze callback-functie wordt aangeroepen wanneer de Reboot-instructie faalt. WriteUninstaller, plug-ins, File en WriteRegBin kunnen niet worden gebruikt voor deze callback-functie.

onSelChange:
Wordt aangeroepen wanneer de opties van de componentselectiepagina worden gewijzigd. Wordt vaak gebruikt om SectionSetFlags en SectionGetFlags te gebruiken.

onUserAbort:
Deze callback wordt aangeroepen wanneer de gebruiker op de knop "annuleren" klikt en de installatie nog niet is mislukt. Als de functie Abort aanroept, zal de installatie niet afsluiten.

onVerifyInstDir:
Deze callback stelt je installateur in staat om te bepalen of het installatiepad geldig is of niet. Deze code wordt één keer aangeroepen telkens wanneer de gebruiker het installatiepad wijzigt. Als de functie Abort aanroept, wordt het pad naar $INSTDIR als ongeldig beschouwd.

VN. GUIInit:
De callback wordt aangeroepen voordat de eerste pagina laadt en het Uninstaller-venster wordt weergegeven, zodat je de uninstaller-interface kunt aanpassen.

un.onInit:
Deze callback wordt aangeroepen wanneer de uninstaller bijna klaar is met de initialisatie. Als de un.onInit-functie Abort gebruikt, sluit de uninstaller onmiddellijk af. Opmerking: De functie kan de $INSTDIR indien nodig valideren en/of aanpassen.

un.onUninstFailed:
Deze callback-functie wordt aangeroepen wanneer de gebruiker op de knop "Annuleren" klikt nadat een verwijdering is mislukt (als het Abort-commando of een ander mislukt commando wordt gebruikt).

un.onUninstSucces:
De callback wordt aangeroepen voordat de verwijdering succesvol is en sluit terecht het deinstallationsvenster (mogelijk nadat de gebruiker op "sluiten" klikt als SetAutoClose op false staat).

un.onGUIEnd:
De terugbel wordt aangeroepen net nadat het deinstaller-venster is gesloten. Gebruik om eventuele plugins die met de gebruikersinterface te maken hebben vrij te geven wanneer dat nodig is.

un.onRebootFailed:
Deze callback-functie wordt aangeroepen wanneer de Reboot-instructie faalt. WriteUninstaller, plug-ins, File en WriteRegBin kunnen niet worden gebruikt voor deze callback-functie.

un.onUserAbort:
Deze callback wordt aangeroepen wanneer de gebruiker op de knop "Annuleren" klikt en de verwijdering niet is mislukt. Als de functie Abort aanroept, zal de uninstaller niet afsluiten.

 Huisbaas| Geplaatst op 28-01-2024 12:07:23 |
Call moet worden gebruikt met functienamen die beginnen met "un." in het deïnstalleergedeelte.
Usage: Call function_name | [:label_name]


NSIS heeft naamvoorwaarden - functies die vanuit de uninstaller worden aangeroepen, moeten een voorvoegsel in de naam "un" hebben.

De oplossing is als volgt:

Referentie:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.

 Huisbaas| Geplaatst op 28-01-2024 15:10:07 |
 Huisbaas| Geplaatst op 09-05-2024 09:46:16 |
Advanced Installer is een krachtige MSI-installatiepakketmaker die MS Windows-gecertificeerde Windows-installers genereert met een gebruiksvriendelijke grafische interface, intuïtieve en zeer eenvoudige interface, waardoor het een goede Windows-installateurschrijver is.
 Huisbaas| Geplaatst op 21-02-2025 17:36:44 |
Inno Setup is een gratis Windows-programma-installer ontwikkeld door Jordan Russell en Martijn Laan. Inno Setup werd voor het eerst gelanceerd in 1997 en is tegenwoordig concurrerend met en zelfs beter dan veel commerciële installateurs qua functieset en stabiliteit.

Website:De hyperlink-login is zichtbaar.

Geval: Ollama Windows-applicatie,De hyperlink-login is zichtbaar.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com