[VB/ALG]What's new mee compileren met project

Pagina: 1
Acties:

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
De situatie is als volgt:
Met enige regelmaat schrijf ik voor klanten van ons bedrijf een stukje software in VB6. Na verloop van tijd, komt de klant tot de ontdekking dat hij een uitbreiding of aanpassing wil hebben. Geen enkel probleem; ik pas de software aan, test het, maak een HTML-pagina What's new.html met daarin de gemaakte wijzigingen, instaleer het bij de klant of stuurt de CD op, en kom tot de comclusie dat ik vergeet het HTML-bestand mee te sturen.

Nou ben ik eigenlijk op zoek naar een methode, niet zozeer een programma, waarbij het mogelijk is om bv in VB6 de wijzigingen te noteren die dan in de compilatie meegaan en dus vanuit de executable aangeroept kunnen worden.
Hebben jullie hier (positieve of negatieve) ervaringen mee of tips hoe het helemaal anders kan ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kijk eens naar de resource editor in VB6. Daarme kun je een resource file opnemen in je project en daarin weer allerlei bestanden en andere resources meenemen.

By default staat de resource manager uit in VB6, maar via tools->add-ins kun je 'm inschakelen (loaded + startup aanvinken (bovenste 2 vinkjes dus)). Vervolgens verschijnt 'ie als een groen icoontje op je toolbar.

Vervolgens neem je de HTML file op als resource in dat bestand en kun je met LoadResData het bestand laden uit je resource file. De resource zélf zal worden opgenomen in je binary.

Een heel andere oplossing is een fatsoenlijke setup maken in plaats van dat brakke ding van VB. Een erg goeie (IMHO) is Inno-Setup (en nog gratis ook d:)b ). Dan is het een kwestie van een setup-file maken, een extra include (je .htm) erin opnemen en de volgende keer dat je je setup build wordt je resource automatisch in de setup meegenomen (en dus gedeployed bij je klant).

[ Voor 255% gewijzigd door RobIII op 09-08-2006 22:32 ]

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


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
ik heb er even vlug naar gekeken en het ziet er erg goed uit. Hoe gaat de Inno-setup dan om met de mee te installeren dll's en al dat soort zaken ? Of moet ik eerst een setup maken met PDW en dan de setup.exe gebruiken in de Inno-setup ? Lijkt mij niet handig ??

Kan ik ook meerdere programma's in 1 actie mee installeren ? B.v. een applicatie en MSDE in 1 install?

[ Voor 16% gewijzigd door pkouwer op 10-08-2006 22:36 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pkouwer schreef op donderdag 10 augustus 2006 @ 22:30:
ik heb er even vlug naar gekeken en het ziet er erg goed uit. Hoe gaat de Inno-setup dan om met de mee te installeren dll's en al dat soort zaken ?
Je moet de juiste DLL's zelf in je setup zetten, maar da's niet zo moeilijk als het lijkt...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[ Components ]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
Name: "vbruntimes"; Description: "Visual Basic Runtimes"; Types: full;

[ Files ]
;VB6 dependency files
Source: "<padnaarvb6dlls>\stdole2.tlb";  DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regtypelib;  Components: vbruntimes
Source: "<padnaarvb6dlls>\msvbvm60.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: main
Source: "<padnaarvb6dlls>\oleaut32.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver noregerror;  Components: vbruntimes
Source: "<padnaarvb6dlls>\olepro32.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: vbruntimes
Source: "<padnaarvb6dlls>\asycfilt.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile;  Components: vbruntimes
Source: "<padnaarvb6dlls>\comcat.dll";   DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: vbruntimes
;Source: "<padnaarvb6dlls>\COMDLG32.OCX"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: vbruntimes
Source: "<padnaarvb6dlls>\50comupd.exe"; DestDir: "{tmp}";  Components: main

;Extra VB6 dependency files
Source: "<padnaarvb6dlls>\MSCOMCT2.OCX";    DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: vbruntimes
Source: "<padnaarvb6dlls>\MSCOMCTL.OCX";    DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver;  Components: main

;Main files
<hier je eigen files>

[ Code ]
function ShouldInstallComCtlUpdate: Boolean;
var
  MS, LS: Cardinal;
begin
  // Only install if the existing comctl32.dll is < 5.80
  Result := False;
  if GetVersionNumbers(ExpandConstant('{sys}\comctl32.dll'), MS, LS) then
    if MS < $00050050 then
      Result := True;
end;

[ Run ]
Filename: "{tmp}\50comupd.exe"; Parameters: "/r:n /q:1"; Check: ShouldInstallComCtlUpdate; Components: vbruntimes;

Je zult zelf even moeten kijken welke je nodig hebt. De bovenste groep heb je sowieso nodig, de onderste ("Extra dependency files) niet altijd. Ik heb een zipje voor je online gezet met daarin de bestanden die ik vaak gebruik(te). In deze zip zitten alle laatste (officiële) VB6 SP6(a) bestanden (inc. een gefixte MSComCTL welke problemen gaf met listviews na SP6).
Inno setup was (voor mij) snel te doorgronden. Binnen een halve dag bouwde ik al fatsoenlijke en nette setups. Het is een kweste van even de (goede!) documentatie doorlezen en gaan met die banaan.
Uiteraard dien je overige DLL's en OCX'es e.d. die je voor je project gebruikt ook zelf op te nemen in het Inno-project, maar da's een kwestie van je references checken in VB.
pkouwer schreef op donderdag 10 augustus 2006 @ 22:30:
Of moet ik eerst een setup maken met PDW en dan de setup.exe gebruiken in de Inno-setup ? Lijkt mij niet handig ??
Nee, die PDW mag je voortaan links laten liggen...
pkouwer schreef op donderdag 10 augustus 2006 @ 22:30:
Kan ik ook meerdere programma's in 1 actie mee installeren ? B.v. een applicatie en MSDE in 1 install?
Ook dat is geen probleem. Bij inno valt daar wel het een en ander over te lezen, evenals in de helpfile (ook MSDE specifiek).

[ Voor 13% gewijzigd door RobIII op 10-08-2006 23:27 ]

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


Verwijderd

Inno-setup kan dat allemaal, maar 't vergt wel een hoop handmatig scripten (tenminste bij de laatste versie die ik heb gezien, zo'n 3 jaar terug). InstallShield (de volledige versie) neemt je een hoop van die sores uit handen (checken op dependencies, welke dll's moeten aanwezig zijn, etc.) maar dat pakket kost je een arm en een been, en vergt ook nog wel wat 'manual tweaking' om een goede installer te bakken.

Overigens zou ik nooit MSDE automatisch laten installeren. Stel dat die klant al beschikt over een MSSQL 2000/2005 (al dan niet Express) database, dan maak je 'm niet blij wanneer je daar ook nog 's MSDE naast zet... Dat is iets wat bij de 'prerequisites' hoort.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Verwijderd schreef op donderdag 10 augustus 2006 @ 23:28:

Overigens zou ik nooit MSDE automatisch laten installeren. Stel dat die klant al beschikt over een MSSQL 2000/2005 (al dan niet Express) database, dan maak je 'm niet blij wanneer je daar ook nog 's MSDE naast zet... Dat is iets wat bij de 'prerequisites' hoort.
Ja daar heb je ook weer gelijk in. Stof tot nadenken dus maar weer.

Verder heb ik idd al even getracht de setup.lst om te zetten en als je het eenmaal door hebt, is het redelijk eenvoudig te doorgronden. Eenmaal een goede .iss, kun je hetm volgens mij voor vele projecten gebruiken, of zie ik dit verkeerd ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pkouwer schreef op donderdag 10 augustus 2006 @ 23:51:
[...]

Ja daar heb je ook weer gelijk in. Stof tot nadenken dus maar weer.

Verder heb ik idd al even getracht de setup.lst om te zetten en als je het eenmaal door hebt, is het redelijk eenvoudig te doorgronden. Eenmaal een goede .iss, kun je hetm volgens mij voor vele projecten gebruiken, of zie ik dit verkeerd ?
Ik heb ergens een "template" .iss liggen ja, en die kun je vaak/altijd gebruiken. Kwestie van 1 keer naar je zin inrichten ;) Die setup.lst kun je gebruiken al leidraad, maar als je eenmaal de basis DLL's hebt heb je dat kreng echt niet meer nodig. En ik neem aan, als je een project gemaakt hebt, dat je weet welke andere dependencies je project heeft (of hoe je ze kunt vinden) en welke DLL's, OCX-es etc. je dient te includen (en evt. te registreren) etc.
1 tip: zweer die Package en Deployment troep (uit de VS6 serie) af en kijk er nooit meer naar terug...
Verwijderd schreef op donderdag 10 augustus 2006 @ 23:28:
Overigens zou ik nooit MSDE automatisch laten installeren. Stel dat die klant al beschikt over een MSSQL 2000/2005 (al dan niet Express) database, dan maak je 'm niet blij wanneer je daar ook nog 's MSDE naast zet... Dat is iets wat bij de 'prerequisites' hoort.
Je kunt de gebruiker de optie geven MSDE te installeren (als "component"), of je kunt met wat script detecteren of er al een MSDE (of, SQL server for that matter) geïnstalleerd is. Done that, been there. Werkt prima.
Verwijderd schreef op donderdag 10 augustus 2006 @ 23:28:
InstallShield (de volledige versie) neemt je een hoop van die sores uit handen (checken op dependencies, welke dll's moeten aanwezig zijn, etc.) maar dat pakket kost je een arm en een been, en vergt ook nog wel wat 'manual tweaking' om een goede installer te bakken.
Voor mij persoonlijk is die InstallShield software ruk. Ik heb er mee geprobeerd te werken maar heb er nog nooit iets fatsoenlijks uit weten te krijgen (is ook al wat jaren geleden hoor). Maar da's mijn mening. Los daarvan kan installshield weinig meer dan Inno met wat scriptwerk en is Inno nog gratis ook.

[ Voor 67% gewijzigd door RobIII op 11-08-2006 00:01 ]

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


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
RobIII schreef op donderdag 10 augustus 2006 @ 23:55:


Je kunt de gebruiker de optie geven MSDE te installeren (als "component"), of je kunt met wat script detecteren of er al een MSDE (of, SQL server for that matter) geïnstalleerd is. Done that, been there. Werkt prima.
Ik ga dit proberen en als ik er niet uitkom meld ik me weer, maar: ik ben om !!

  • keesdewit
  • Registratie: December 2003
  • Laatst online: 19-06-2025
Waarom maak je niet in elke applicatie (bijvoorbeeld in het help menu) een apparte pagina met daarop een webbrowser control (shdocvw.dll) met daarin een verwijzing naar een html pagina die ergens online staat? Op deze manier heb je de zgn whats new bestandjes allemaal op je server staan en kan je altijd een aanpassing maken in de tekst hiervan zonder dat de klant een nieuwe relaease nodig heeft.

Verwijderd

RobIII schreef op donderdag 10 augustus 2006 @ 23:55:
Voor mij persoonlijk is die InstallShield software ruk. Ik heb er mee geprobeerd te werken maar heb er nog nooit iets fatsoenlijks uit weten te krijgen (is ook al wat jaren geleden hoor). Maar da's mijn mening. Los daarvan kan installshield weinig meer dan Inno met wat scriptwerk en is Inno nog gratis ook.
Jij baseert je mening op ervaring met een oude InstallShield, ik op die van mij met een oude Inno-Setup. :)
Ik zeg ook niet dat je met Inno niet alles kan wat met InstallShield kan, maar dat 't je een hoop sores uit handen kan nemen. Dependencies checken, bepalen of die dependencies geregistreerd moeten worden (als com/ocx of als type library), dat soort dingen.

Wanneer je al een goed Inno script hebt dat je in 90% van de gevallen kunt gebruiken, met evt. een paar kleine aanpassingen (zoals hier een update van bestaande software), dan is Inno prima. Maak je een installer voor iets nieuws, met nieuwe eigen of 3rd party dll's, dan kies ik direct voor InstallShield. Gewoon omdat het maken van een Inno script from scratch vele malen meer tijd kost dan een nieuw project in InstallShield.

Maar ja, Inno is gratis, en InstallShield kost belachelijk veel (1600 euro voor InstallShield 12 Professional, 2700 euro voor InstallShield 12 Premier)...

Verwijderd

keesdewit schreef op vrijdag 11 augustus 2006 @ 16:43:
Waarom maak je niet in elke applicatie (bijvoorbeeld in het help menu) een apparte pagina met daarop een webbrowser control (shdocvw.dll) met daarin een verwijzing naar een html pagina die ergens online staat?
Als TS vergeet om whats_new.html op CD te zetten, vergeet 'ie vast ook om 'm online te zetten. ;)

Bovendien hoeft lang niet elke klant online te zijn/kunnen. Wij hebben bv. ooit 's een pakket voor Defensie geleverd, en het hele netwerk waar dat op geinstalleerd werd had geen internet-toegang.
En bij applicaties voor particulieren (als voorbeeld): mijn moeder heeft alleen een inbel-account, en vindt 't niet fijn om telefoontikken te moeten betalen om "what's new" te lezen.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
helemaal met Afterlife eens. Vaak wordt er te gemakkelijk vanuit gegaan dat er internetverbinding is. Ook zakelijk kom ik het vaker tegen dat dat het geval is, terwijl sommige PC's met specieife toepassingen juist niet op het internet zijn aangesloten.

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
heb ik, ter afsluiting hiervan, nog een laatste vraag:

Je ziet regelmatig dat je, bijvoorbeeld bij Office, kunt kiezen om bepaalde programma's te installeren. Ik zit dan te denken aan mijn eigen applicatie(s) en bv. MSDE. De eigen applicaies bestaan nog wel eens uit client-apps en server-app. Is dit met inno-setup ook mogelijk, kon het nl. niet terugvinden op hun website. ?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
pkouwer schreef op zondag 13 augustus 2006 @ 17:15:
heb ik, ter afsluiting hiervan, nog een laatste vraag:

Je ziet regelmatig dat je, bijvoorbeeld bij Office, kunt kiezen om bepaalde programma's te installeren. Ik zit dan te denken aan mijn eigen applicatie(s) en bv. MSDE. De eigen applicaies bestaan nog wel eens uit client-apps en server-app. Is dit met inno-setup ook mogelijk, kon het nl. niet terugvinden op hun website. ?
Uiteraard. Kwestie van de juiste "components" definiëren en de gebruiker laten kiezen welke hij/zij wil installeren (client/server of bijv. app A en C maar niet B).

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

Pagina: 1