Just nu i M3-nätverket
Jump to content

Script för Inno Setup


Kalle Dator1

Recommended Posts

Hej !

 

Har börjat att använda Inno Setup för att göra mina program installerbara. Fick till scriptet så att det fungerade med alla sys- och ocx-filer, och kompilerade sedan..

 

Allt gick bra och det blev en självutvecklande exe-fil, vilket fungerade fint vid en provinstallation, och jag fick en ikon på skrivbordet, som jag önskade.

 

Men - i stället för att generera sina filer i arbetskatalogen, som det är meningen, slänger nu mitt program ut alla filerna på skrivbordet...

 

OK - tänkte jag - det är väl någonting som är tjurigt, så jag skrev om alla filhanteringar i programmet, med hela sökvägen i stället för bara filnamnet, som egentligen borde räcka. Men det hjälpte icke !

Trots god spårbarhet i mitt program så hittar det naturligtvis inte heller sina filer, när de ligger på "skrivbordet" i stället för i arbetskatalogen...

Resultatet blir naturligtvis en "runtime error"...

 

Så hittade jag någonting på Inno-siten om "Workingdir". Men ingenstans en vettig anvisning om var placera denna rad. I ett fall föreslås raden ligga under {icon}, men det visade sig också vara ett blindspår...

 

Har någon ett bra förslag, byggt på erfarenhet ?

 

/Kalle

 

Link to comment
Share on other sites

Kom ihåg att om Inno hittar poster i registret från en tidigare installation (som du ju har, med de felaktiga placeringarna av filerna) så kommer den att installera på samma plats som denna, oavsett vad du skriver i scriptet. Gör alltså först en ordentlig avinstallation och rensa eventuella poster i registret och försök sen igen.

Installationskatalog skall du ange i [setup]-sektionen med:

 

DefaultDirName={pf}\DinProgramMapp

 

vilket lägger installationen i c:\Program files\DinProgramMapp eller dylikt.

 

I [Files]-sektionen där du anger de filer som ska kopieras använder du DestDir= för respektive fil, ex.:

 

Source: "dittprogram.exe"; DestDir: "{app}"

 

[inlägget ändrat 2007-09-27 18:30:27 av Anjuna Moon]

Link to comment
Share on other sites

Hej och tack för svar !

 

Så här ser min script fil ut, enligt nedan, fastän raderna förmodligen blir wrappade.

 

Jo men visst, jag avinstallerar naturligtvis det felaktigt installerade programmet, när det inte fungerar.

 

Men inte ska jag väl behöva gå in och rensa också i registret - eller ? Detta är ju något som man undviker i det längsta, och inget som gemene man bör ge sig på....

 

; Script generated by the Inno Setup Script Wizard.

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

 

[setup]

AppName=Programnamnet

AppVerName=Program + version

AppPublisher= Hemma

AppPublisherURL=http://...

AppSupportURL=http://....

AppUpdatesURL=http://....

DefaultDirName={pf}\katalognamnet

DefaultGroupName=Programnamnet

InfoBeforeFile=G:\VB-program\Programnamn\Version 4\Rutinkoder\InstallInfo

OutputDir=G:\VB-program\Programnamn\Version 4\Install

OutputBaseFilename=Programnamn-setup

PrivilegesRequired=admin

Compression=lzma

SolidCompression=yes

 

[Languages]

Name: "english"; MessagesFile: "compiler:Default.isl"

 

[Tasks]

Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

 

[Files]

; begin VB system files

; (Note: Scroll to the right to see the full lines!)

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\stdole2.tlb"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regtypelib

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\msvbvm60.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\oleaut32.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\olepro32.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\asycfilt.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile

Source: "G:\VB-program\Programnamn\Version 4\Install\vbfiles\comcat.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

; end VB system files

 

Source: "C:\Windows\System32\MSCAL.OCX"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver

Source: "C:\Windows\System32\COMDLG32.OCX"; DestDir: "{sys}"; Flags: restartreplace sharedfile regserver

Source: "G:\VB-program\Programnamn\Version 4\Install\Program.exe"; DestDir: "{app}"; Flags: ignoreversion

Source: "G:\VB-program\Programnamn\Version 4\Install\EtikettInfo.txt"; DestDir: "{app}"; Flags: ignoreversion

Source: "G:\VB-program\Programnamn\Version 4\Install\etikett.jpg"; DestDir: "{app}"; Flags: ignoreversion

Source: "G:\VB-program\Programnamn\Version 4\Install\etikett_saknad.JPG"; DestDir: "{app}"; Flags: ignoreversion

; NOTE: Don't use "Flags: ignoreversion" on any shared system files

 

[icons]

Name: "{group}\Programnamn"; Filename: "{app}\Program.exe"

Name: "{commondesktop}\Programnamn"; Filename: "{app}\Program.exe"; Tasks: desktopicon

 

[Run]

Filename: "{app}\Program.exe"; Description: "{cm:LaunchProgram,Programnamn}"; Flags: nowait postinstall skipifsilent

WorkingDir: "{app}"; Filename: "{app}\Program.exe"

 

 

Som du ser så har jag på slutet lagt till just "Workingdir:....efter en vag beskrivning i Innoscript Help

 

/Kalle

 

Link to comment
Share on other sites

Men inte ska jag väl behöva gå in och rensa också i registret - eller ?

Alldeles för ofta lämnas skit kvar i registret vid avinstallationer, så för att vara säker bör man rensa.

 

och inget som gemene man bör ge sig på....

Tja, en programmerare är ju inte gemene man ;)

 

Jag använder inte Inno själv, men av vad jag kan se och jämfört med hjälpfilerna ser det rätt ut, så frågan är om det inte ligger saker kvar i registret. Eller såg filen ut sådär tidigare också, när den lade sakerna på skrivbordet?

 

Link to comment
Share on other sites

Nej förvisso är inte en programmerare vem som helst eller gemene man...

 

Visst händer det att jag är in och stökar i registret, men jag tyckte att det verkar overkill att också behöva rensa där...

 

Har du då något förslag på hur jag hittar rätt i den djungeln ?

 

Jo, scriptfilen ser likadan ut, eftersom det enda som jag förändrade från det första försöket var min applikation, när jag utökade med full sökväg till varje "Open..."

 

Det sista försöket var med tillagd "Workingdir:.."

Men ligger den raden på rätt plats, och är den fullständig... Ska den finnas bara där ?

En så pass viktig detalj berörs knappast alls i Help-funktionen, och den finns heller inte med i något av de många exempel som man får med Inno...

 

Tråkigt att det ska strula med detta, när det allra mesta gick så smidigt...

 

/Kalle

 

Link to comment
Share on other sites

Har du då något förslag på hur jag hittar rätt i den djungeln ?

Ibland behöver man programmets CLSID för att hitta rätt, men börja med att leta efter Software/Dinapplikation under antingen currentuser, localmachine eller allusers (beroende på vad du valde i installationen)

 

Link to comment
Share on other sites

Tack för tipset !

 

Har nu tagit hem MS Installer, som jag ska testa i morgon. Bör jag ändå rensa i registret, kanske ? Ska kika på detta också...

 

Mycket väsen för nästan ingen ull alls !

Förstår inte att det är mer som en naturlag att det ska strula på något sätt - men det är ju datorvärlden i ett nötskal...

(Plus en stor dos av egen oförmåga och bristande tålamod, förstås...)

 

/Kalle

 

Link to comment
Share on other sites

Bör jag ändå rensa i registret, kanske ?

Detta var något som var specifikt för Inno och är i mina ögon en bugg (fast de inte själva väljer att kalla den det) så jag tror inte det ska behövas för MS Installer.

 

Link to comment
Share on other sites

Hej !

 

Kollade i registret och där fanns bara en ganska oskyldig och intetsägande rad, som jag tog bort...

 

Jag provade att installera Visual Studio Installer, samt bygga upp en setup av mitt program med den.

 

Ja, visserligen blev det en setup tillverkad, som troligen fungerar också, men jag blir alldeles häpen över hur lite information man får via programmet om vad som pågår och när det hela har genomförts.

Finns ingenting om vilka filer som man vill ha med och var, ingen möjlighet att lägga in en installationstext som information inför den fortsatta setup-proceduren, och inga möjligheter att få setupen på svenska. Programmet bara tuggar på - eller gör det det (?)...

 

Inno, visserligen med andra svårigheter och konstigheter, men den har i alla fall de nu uppräknade möjligheterna.

 

Med VSI vet man ingenting, och får inte ens veta om eller att setupen är färdig - det är dåligt !

 

Har sökt en förklaring lite varstans om varför en installation med Inno slänger ut arbetsfilerna på skrivbordet, bl a på VB-forum. Ingen verkar egentligen veta, och jag får bara kryptiska svar. Ett av svaren menar att "Workingdir:" över huvud taget inte har i scriptet att göra.... (! ?).

 

Link to comment
Share on other sites

Finns ingenting om vilka filer som man vill ha med och var, ingen möjlighet att lägga in en installationstext som information inför den fortsatta setup-proceduren, och inga möjligheter att få setupen på svenska. Programmet bara tuggar på - eller gör det det (?)..

Låter som du skapat en Empty Installer. Välj Visual Basic Installer. Där kan du välja filer, skapa poster i registret, skapa associationer, launch conditions, lägga till dialogrutor osv. Dock stämmer det som du säger att texter är statiska och engelska.

 

Link to comment
Share on other sites

Hej !

 

Verkar som att jag nu har löst problemet med installationen vid Inno Setup !

 

Problemet uppstod med skrivbordsikonen, där startkatalogen inte hade specificerats, vilket var orsaken till att mina genererade arbetsfiler hamnade på skrivbordet i stället för i arbetskatalogen... Jämförde med ikonen i Startmenyn.

 

Envetenheten firar ständigt nya triumfer, och jag hittade till slut en brist i en av setupscriptens lines, som handlar just om skrivbordets genväg. Båda raderna ska se ut som följer, ifall någon annan nu ger sig på Inno, som ändå har vissa förutnämnda fördelar:

 

[icons]

Name: "{group}\MittProgram"; Filename: "{app}\MittProgram.exe"; Workingdir: "{app}"

Name: "{commondesktop}\Mittprogram"; Filename: "{app}\MittProgram.exe"; Tasks: desktopicon ;Workingdir: "{app}"

 

Observera att båda raderna ska innehålla "Workingdir:..."

 

/Kalle

 

[inlägget ändrat 2007-09-29 10:57:14 av VideoKalle]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...