"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
Rustacean
Indien vanuit jouw programma, wordt deze na de aanroep afgesloten. Het "Update" progsel haalt nieuwe versies van bestanden binnen en vervangt de oudere. Daarna start het je normale programma weer op.
http://www.ginstall.com/
(Ultraedit gebruikt die ook, en dan webbased en schedulen ofzo moet volgens mij wel een optie zijn, mits de pc aan het internet hangt uiteraard.)
Anders het schrijven van een kleine patcher is niet al te ingewikkeld.
van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !
Het downloaden via web heb ik wel door gedacht...
dan zou ik kijken of er een update is,
is er een update dan zou ik een vragen of ze deze willen installeren,
willen ze deze installeren gaat sluit de app die ze draaide en open ik een update app
deze app download het bestand en overschrijft het oude (eventueel backup maken)
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
Krijg net dit idee :
Patch is een zipfile
Deze zipfile bevat bestanden met als naam het adres van de .exe waar er geweizigd moet worden.
De bestanden bevatten de inhoud die er moet komen te staan.
Mijn patcher moet dus zipfiles kunnen openen en weet wat met de data te doen. Een CRC check is ook wel wenselijk
En de patchmaker dient dus de beide bestanden te vergelijken, begin adres van de verschillen te noteren. En dan wordt er zoveel opnieuw geschreven.... Moet lukken
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
Gebruik gewoon Windows Installer (.msi) die biedt al ondersteuning voor Patches (.msp). Bijvoorbeeld SmartFTP en Adobe Acrobat/Reader maken hier gebruik van en het werkt heel gemakkelijk.markvt schreef op 01 april 2004 @ 23:35:
Denk dat deze installer wel doet wat jij wil:
http://www.ginstall.com/
Verwijderd
What is Visual Patch?
Visual Patch provides software developers with a complete solution for creating secure full-history software update patches. Designed for use on all 32-bit Windows platforms, these compact, self-installing patch files can be easily distributed. Unlike setup programs, which contain all the files needed to run an application, patches created with Visual Patch contain only the files that changed from the previous releases. Since users must have an eligible previous version of an application installed in order to make use of a patch, developers are free to make patches available to everyone without facilitating unauthorized use of their software products.
http://www.indigorose.com/vp/index.php
Geld beschikbaar, ja
Voor dit patch systeem, nee
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
Als je een volledige installatie maakt en distribueert, en daarna dezelfde installatie met alleen de gewijzigde bestanden erin heb je een soort patch op de originele installatie. Inno's uninstaller zorgt er zelf voor dat het uninstall bestand wordt bijgewerkt met de nieuwere bestanden zodat ook deze ge-uninstalled worden als nodig.
Het patch-systeem dat ik gebruik is simpel:
• Mijn app start op
• Checkt of er verbinding is, en zo ja, verbindt dan met onsbedrijf.nl. Ook kan de gebruiker zelf deze check "forceren" middels een "check voor updates" knop.
• Op onsbedrijf.nl wordt bestand.xml opgehaald met daarin o.a. welk versienummer het nieuwst is en wat er dan in die versie is gewijzigd. Eventuele tussenliggende versies kunnen ook gedowned worden.
• Als versienummer > huidig nummer dan download hij het setupbestand dat in het XML bestand gedefinieerd is naar een temp-dir
• Na het downloaden wordt de setup vanuit de app gestart vlak voordat de app zichzelf afsluit.
• Inno setup ondersteunt standaard een flink aantal parameters die je aan de setup kunt meegeven. Ik geef met deze parameters een "blinde" install aan: De user ziet alleen effe een progressbar vollopen en that's it.
• De Inno setup start de app weer (en dus de nieuwe versie van de software)
Dat is het zo'n beetje in grote lijnen.
Check ook http://www.jrsoftware.org/iskb.php?updateinstall voor "update" informatie.
Nogmaals: Ik heb ook een tijdje met de Windows Installer gewerkt, maar vond deze te beperkt en te "ondoorzichtig". Ik had té weinig controle over de interne werking van de MSI. Ik weet niet of dat tegenwoordig beter is, maar ik vond Inno écht een hele opluchting.
[ Voor 30% gewijzigd door RobIII op 02-04-2004 01:37 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
diff - compare files line by line
patch - apply a diff file to an original
Of denk ik nu te unix?
Tja, als je vind dat Windows Installer niet duidelijk is doe je dat zelf. De dialoogvensters kun je naar eigen wens aanpassen. En kleiner? Tja, misschien wel, maar het voordeel van msi is dat je geen executable hebt. Ook ongevoelig voor virussen dus.RobIII schreef op 02 april 2004 @ 01:31:
Je kunt ook Inno setup gebruiken. Erg makkelijk, erg makkelijk te scripten en nog gratis ook. Ik gebruik 'm liever dan Windows Installer (Inno is vaak kleiner en veel inzichtelijker in wat er nou precies gebeurt tijdens de install).
Ook de componenten wijzigen en het gemakkelijke verwijderen van applicaties is een groot voordeel ten opzichte van ELKE andere setup.
Ohja, voor de meeste installaties hoef ik bij Windows Installer niet te scripten trouwens. Gewoon een simpele user interface.
Ja, aangezien dit alleen op text files werktTreenaks schreef op 02 april 2004 @ 07:45:
uh... diff en patch?
diff - compare files line by line
patch - apply a diff file to an original
Of denk ik nu te unix?
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Even de MSDN erop na slaan voor de optie's en dan als gratis compiler ORCA of NInstallParcye schreef op 02 april 2004 @ 00:42:
Precies, duur...
Geld beschikbaar, ja
Voor dit patch systeem, nee
jammer maar helaas, dat werkt in de praktijk nietErkens schreef op 01 april 2004 @ 23:37:
Je app onderverdelen in meerdere files (lees: dll's) zodoende hoeven alleen de aangepaste dll's gedownload te worden
Verwijderd
Omdat de executables teveel van elkaar verschillen om dat zinnig te maken?Verwijderd schreef op 04 april 2004 @ 11:36:
waarom gebruik je niet een byte patcher, zoals je vaak in de crack scene ziet, zijn relatief kleine patches en makkelijk te proggen.
Zoals klinz al zegt, de excecutables verschillen vaak teveel van elkaar en het is gewoon weg ongelofelijk veel werk.Verwijderd schreef op 04 april 2004 @ 11:36:
waarom gebruik je niet een byte patcher, zoals je vaak in de crack scene ziet, zijn relatief kleine patches en makkelijk te proggen.
De installer van WinAMP, NSIS, bevalt me eigenlijk wel erg goed. De installer die er uit is gerolt is 1.3mb in tegenstelling tot die van andere installers die meestal rond de 5mb liggen voor mijn project.
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
De installer van Windows is al standaard geïnstalleerd. Hoef je dus niet mee te leveren, hoef je alleen maar je package te maken. Is nog kleiner.Parcye schreef op 04 april 2004 @ 17:22:
Ik ben me nog wat aan het orienteren in de mogelijkheden.
De installer van WinAMP, NSIS, bevalt me eigenlijk wel erg goed. De installer die er uit is gerolt is 1.3mb in tegenstelling tot die van andere installers die meestal rond de 5mb liggen voor mijn project.
We adore chaos because we like to restore order - M.C. Escher
Standaard op Windows 2000, ME, XP en 2003. Voor de andere Windows versies, die tegenwoordig een steeds kleiner marktaandeel krijgen zijn er Windows Installer versies beschikbaar.LordLarry schreef op 04 april 2004 @ 21:39:
Nee, die is standaard geinstalleerd op sommige windows versie. Soms is het al geinstalleerd via een ander pakket, maar daar kan je natuurlijk niet vanuit gaan. Bovendien zijn er ook meerdere MSI versies.
Als je de msi bestanden geschikt maakt voor versie 1.2 is er bijna nooit iets aan het handje. Bovendien kun je een setup.exe meeleveren die indien nodig instmsia.exe / instmsiw.exe download.
Die Windows Installer technologie is om het proces te versimpelen. Hier in mijn nieuwe thuisnetwerk wil ik geen enkele applicatie meer installeren die NIET een Windows Installer installatie heeft.
Verwijderd
[ Voor 14% gewijzigd door Verwijderd op 04-04-2004 23:24 ]
Het ziet er wel goed uit en de eerste test is prima.
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002
wat doe je dan als iemand een verouderde versie van windows installer heeft???jvdmeer schreef op 04 april 2004 @ 18:46:
[...]
De installer van Windows is al standaard geïnstalleerd. Hoef je dus niet mee te leveren, hoef je alleen maar je package te maken. Is nog kleiner.
Zoals gezegd kun je een setup.exe bijleveren die de Windows Installer versie controleert. Met versie 1.2 zit je trouwens altijd goed.mschol schreef op 04 april 2004 @ 23:42:
wat doe je dan als iemand een verouderde versie van windows installer heeft???
Alleen al het lezen van de helpfiles beantwoordt ongeveer al je vragen over patches. Alhoewel de producten die ik noemde enige inwerktijd vergen, besparen ze je ongelofelijk veel tijd en ellende en geven ze je eindproduct een professionele installer. Sinds ik hiermee heb gewerkt, lever ik mijn producten nooit meer anders af. Waarom zou je zelf het wiel opnieuw willen uitvinden, terwijl er kant en klare (Windows Installer-based) oplossingen beschikbaar zijn?
Een goede grap mag vrienden kosten.
ik heb een dll gemaakt die een messagebox met "Versie 1" laat zien. Deze wordt opgeroepen vanuit een exe. Werkt goed. Als ik de dll aanpas naar "Versie 2", krijg ik die fout, dus echt geen third-party DLL!klinz schreef op 03 april 2004 @ 22:31:
Met thirdparty DLL's loop je inderdaad dat gevaar. Maar voor dit doel schrijf je zelf de DLL's, dus niets aan het handje.
Je krijgt die fout ook bij eigengeschreven COM dll's en ActiveX controls. Een ramp is het .....pkouwer schreef op 05 april 2004 @ 08:43:
[...]
ik heb een dll gemaakt die een messagebox met "Versie 1" laat zien. Deze wordt opgeroepen vanuit een exe. Werkt goed. Als ik de dll aanpas naar "Versie 2", krijg ik die fout, dus echt geen third-party DLL!
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Als de applicatie juist is geprogrammeerd, kan je de dll plaatsen in de directory waar je programma staat. Daarnaast maak je een bestandje aan met de naam "applicatie.exe.local".pkouwer schreef op 05 april 2004 @ 12:35:
als het een kwestie zou zijn van dll kopieren en registreren, dan zou het leven een stuk makkelijker zijn
Vanaf windows 2000 zal windows dan elke dll eerst proberen te vinden in de directory van de applicatie. Daarmee is een groot deel (helaas niet de hele) dll-hel voorbij.
Volgens microsoft is Windows 98 SE al genoeg.pkouwer schreef op 05 april 2004 @ 15:09:
ben je wel gebonden aan W2K, is ook niet een eis die je zo kan/mag stellen IMHO.
Daarmee komt de keuze op 98SE, ME, 2000, XP en 2003. Misschien is dat al genoeg keuze?
Klinkt ongefundeerd... heb je voorbeelden?Superstudent schreef op 05 april 2004 @ 19:55:
MS installertroep heeft niet alle professionele functies die je bij sommige andere paketten weer wel hebt. Maar op zich geen slechte keus...
je spreekt jezelf wel een beetje tegen, vind je ook niet ?jvdmeer schreef op 05 april 2004 @ 19:09:
[...]
Volgens microsoft is Windows 98 SE al genoeg.
Daarmee komt de keuze op 98SE, ME, 2000, XP en 2003. Misschien is dat al genoeg keuze?
laat maar doen ook, LB
[ Voor 33% gewijzigd door pkouwer op 05-04-2004 21:13 ]
Ja, can happen. Uit de praktijk weet je dat het werkt vanaf W2k, en in theorie blijkt het volgens Microsoft al te werken vanaf 98SE. Viel me mee dus.
En v.w.b. vaag linkje... we waren even per ongeluk over gestapt op de dll-hel, en ik wilde duidelijk maken dat vanaf windows 2000windows 98SE, er een manier is om deze dll-hel te ontwijken. Namelijk de applicatie middels dll/ocx-redirection te dwingen de dll's en ocx'en te laden uit zijn eigen directory i.p.v. de locaties waar die dll eventueel conflicten zou kunnen veroorzaken. En dit is dus af te dwingen door een leeg bestandje met de naam van de exe gevolgd door .local.
En om weer terug te komen bij de installer (waar TS over begon), windows installer levert standaard de mogelijkheden om isolation toe te passen. Hierdoor hoeft de persoon die de MSI maakt minder over na te denken.
"Als je het kan bedenken, kan het gemaakt worden" Parcye - 14 januari 2002