Skapa Windows installationsfil?

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7443
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Skapa Windows installationsfil?

Inlägg av Marta »

Har ett program som skall kunna installeras "som vanligt" på Windows. För att vara någorlunda säker på att det fungerar med alla Windowsversion föredrar jag en färdig produkt och skulle behöva förslag på något lämpligt.

Kraven är:
- En enda distributionsfil som är direkt körbar. W2k upp till nyaste version. Applikationen som installeras är 32-bit.
- Användaren skall kunna välja directory för program och data, eller acceptera defaults.
- Uppgradering skall kunna ske genom att starta installern som då detekterar var befintlig version finns. Uppgradering består av att skriva över en enda *.exe med en ny version.
- Helst inget kladd i registry eller *.ini, men behövs väl för uppgraderingarna...
- Installeraren _måste_ kunna skapa en fil i det directory där programfilen placeras och som innehåller path till valt data directory. Denna kan sedan applikationen läsa och radera vid första start när den skapar sin *.cfg .
- Avinstallation består av enkel radering. Applikationen kladdar ingenstans i systemet.
- Det skall vara ENKELT. OK om det finns 2^femtioelva finesser, bara de inte är ivägen för enkelheten att skapa en enkel instalation.
- Installationen skapas på en w2k i VirtualBox under Linux. Windows saknar nätverksaccess och så skall det vara. Alltså inget som kräven att kunna "ringa hem" när det installeras...

Har rotat lite i Inno Setup, men hittar inte hur uppgradering skall gå till. Valt directory antar jag kan lösas med en .ini i programmets installationsdiectory. En länk till exempel för denna som gör det efterfrågade tas tacksamt emot.
Användarvisningsbild
netrunner
Inlägg: 5510
Blev medlem: 4 februari 2005, 12:26:05
Ort: 127.0.0.1

Re: Skapa Windows installationsfil?

Inlägg av netrunner »

För att lägga lite lök på laxen så måste du även köpa ett certifikat och signera programvaran så att Windows vet att den kommer från dig och att paketet inte är manipulerat.

Annars kommer Windows 7 - 8 - 8.1 att rekommendera användaren att inte köra programmet. Windows 10 kommer helt enkelt inte att köra programmet alls utan möjlighet att påverka för användaren.

EDIT: Windows 10 kommer att stänga dörren för kanske 95% - 99% av alla virus och malware. Även om användaren vill installera en skärmsläckare med kattbilder och 14 trojaner, så kommer det inte att gå utan certifikat.

Detta är givetvis både bra och dåligt. Men med tanke på hur många det finns som bara tycker "JA" på alla frågor som finns på skärmen helt utan att läsa vad det står ...

BTW: VLC är öppen kod och installeras på det sättet som du beskriver ... mer än så vet jag inte.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7443
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Skapa Windows installationsfil?

Inlägg av Marta »

Då får det tills vidare endast vara tillgängligt upp till w8... Antagligen kommer det en lösning ganska snart för w10. Så som Du beskriver det är helt oacceptabelt och det kommer till och med Microsoft att tvingas inse.

Hur som helst, nu gäller det först av allt att få installationen att fungera.
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Skapa Windows installationsfil?

Inlägg av Icecap »

Jag har gjort en del program till Windows. Jag har använd Borland C Builder 6.

Alla program jag har gjort har behövt någon form av inställningsdata sparade och oftast löser jag det vid att läsa av programmets namn via __argv(0) och sedan byta ut ändelsen från ".EXE" till ".INI".

Ingen installation görs, programmet kör direkt och kan köras från sticka om man vill. Det är bara att kopiera in filen på hårddisken och köra den, man kan lägga en länk om man vill.

Sedan har jag ett par versioner som faktisk sparar vissa data i registret, detta då det gör det enklare att ansluta med olika program som delar samma hårdvaruinterface.

Så allt i allt: installationen behöver bara vara en kopiering. Hela programmet är en egen fil som inkluderar allt.
Användarvisningsbild
Jan Almqvist
Inlägg: 1651
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Skapa Windows installationsfil?

Inlägg av Jan Almqvist »

Krävs det inte administratörsrättigheter (från XP och uppåt) för att kunna skriva till mappar som ligger under
CSIDL_PROGRAM_FILES och CSIDL_PROGRAM_FILESX86?

Edit: F.ö. kan man köra utan installation alls, åtminstone på XP och W7.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 15425
Blev medlem: 16 april 2006, 17:04:10

Re: Skapa Windows installationsfil?

Inlägg av mrfrenzy »

Nullsoft Installer är gratis och klarar det mesta av dina krav, vet inte om den klarar alla men du kan ju prova:
http://nsis.sourceforge.net/Main_Page

Jag använde det en gång för längesedan till ett Delphiprogram.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Skapa Windows installationsfil?

Inlägg av Lennart Aspenryd »

Om man skapar ett Delphi eller Lazarus program blir det ju en .exe.
Så det är klart att den fungerar i min Win 10 miljö!
Varför skulle det inte fungera.
Nerre
Inlägg: 27182
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Skapa Windows installationsfil?

Inlägg av Nerre »

Marta skrev: - Installeraren _måste_ kunna skapa en fil i det directory där programfilen placeras och som innehåller path till valt data directory. Denna kan sedan applikationen läsa och radera vid första start när den skapar sin *.cfg .
Det där blir problematiskt.

Många äldre spel fungerade så att de hade sina inställningar i samma mapp som programmet ligger installerat, från Windows XP innebar det att programmet inte kan köras om man inte är administratör (eftersom skrivande till de mapparna har restriktioner). Från Windows 7 får man en fråga om programmet får göra ändringar på systemet. Samma sak med program som installerar uppdateringar själv, du får alltid upp en fråga där du måste bekräfta.

Det är helt enkelt Fel i Windows att ha konfiguration på samma ställe som programfilen, konfigurationen ska ligga i registret eller under Local settings eller liknande.
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Skapa Windows installationsfil?

Inlägg av Icecap »

Bara delvist rätt! Om programmet finns under "Program Files" är det sant men om man gör ett annat bibliotek som inte är inom "Program Files" går det utmärkt utan tjafs.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7443
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Skapa Windows installationsfil?

Inlägg av Marta »

När Joe R User laddar ner ett program så hamnar filen i ..somewhere\Downloads och där skall den kunna startas för att installera progrmmet på lämpligt ställe. Kanske lika bra att skippa möjligheten att välja directory och låta det alltid hamna i ..ProgramFiles\appname ? Sedam göra på samma sätt med var data skall sparas.

Tydligen blir det till att kladda i registry för att kommunicera var data skall finnas och även var programmet själv finns så att installern kan hitta denna key och ersätta tidigare .exe vid uppgradering.

Skall ta en titt på den nämnda installern, hoppas den är lite enklare än den redan testade.

Fortsatta förslag och tips tas givetvis tacksamt emot.
Mr Andersson
Inlägg: 1409
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Skapa Windows installationsfil?

Inlägg av Mr Andersson »

+1 på NSIS. Mycket kraftfullt och ganska lättanvänt, iaf då jag testade det för några år sedan. Men dem kan ju ha hunnit krångla till det sen dess. :)

Angående att programmet ska fungera på så många windowsversioner som möjligt så bör du inte spara konfigurationsfiler i C:\program pga rättighetsproblemen som nämnts tidigare.
Skapa hellre en egen katalog (vanligt är namnet på programmet eller utvecklaren) under CSIDL_COMMON_APPDATA (gemensamt för alla användare), CSIDL_APPDATA (användarspecifikt) eller CSIDL_LOCAL_APPDATA (användar- och datorspecifikt, dvs synkas inte mellan datorer i en windowsdomän) där du sparar alla inställningar.
Viktigt är att programmet läser av de riktiga CSIDL_-variablerna från slutanvändarsystemet istället för att man hårdkodar en sökväg och bara byter ut användarnamnet. Dels så skiljer de sig by default mellan windowsversioner och språkversioner, och dels så kan användaren själv flytta dem om han/hon själv vill. Har sett många programmerare som gått i den fällan.

Edit/tillägg:
Lista på CSIDLs och längst ner under see also ett par APIer för att läsa av dem
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Användarvisningsbild
Jan Almqvist
Inlägg: 1651
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Skapa Windows installationsfil?

Inlägg av Jan Almqvist »

Visst är det så att om användare A skapar en fil i mappen CSIDL_COMMON_APPDATA så kommer användare B inte att kunna skriva till denna fil med mindre än att användare B har administratörsrättigheter?
Mr Andersson
Inlägg: 1409
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Skapa Windows installationsfil?

Inlägg av Mr Andersson »

Jo det stämmer, jag missade det. Man får se till att installationsprogrammet ger gruppen användare (eller specifika användarkonton/grupper) skrivrättigheter till undermappen (lägg inte lösa filer direkt i appdata) om man vill att alla ska kunna skriva/ändra inställningarna. Alla har läsaccess som default.
jpalsson
Inlägg: 145
Blev medlem: 20 juli 2012, 13:14:41

Re: Skapa Windows installationsfil?

Inlägg av jpalsson »

Nu vet jag inget om ditt program, men Microsofts egna riktlinjer hittar du här:
https://msdn.microsoft.com/en-us/librar ... 49939.aspx

Jag skulle gissa att MS sneglar en del på Apple, dvs. att man snart måste vara
registrerad utvecklare för att skapa program som inte genererar varningar.
emwtur
Inlägg: 77
Blev medlem: 8 maj 2011, 23:21:25
Ort: Bredared

Re: Skapa Windows installationsfil?

Inlägg av emwtur »

för att skapa en installer kan man använda WIX
http://wixtoolset.org/
finns en shareware editor för filerna på http://wixedit.sourceforge.net/

lite hög ingångströskel men det är ett freeware projekt med ursprung hos MicroSoft själva
Skriv svar