10. december 2002 - 15:46Der er
18 kommentarer og 3 løsninger
Deployment Wizards / Installation
Jeg har lavet et VB6 program jeg ønsker at lave en setup til. Det underlige er, at det virker på nogle maskiner og ikke på andre. Når det ikke virker skriver den: Setup cannont continue because some system files are ouy of date. Ok if you want to update. Når man så har genstartet skrive den det samme igen!!
Jeg har brugt følgende componenter: Calender control 8 Data bound grid5 Commoncontrol 6
Hvis der mangler nogle oplysninger må i gerne sige til.
Problemet kan skyldes at der er uoverensstemmelse mellem versionsnummeret angivet i de respektive dependency-filer og de versionsnumre dine OCX'er har.
Hvis du i stifinder højreklikker på din mscal.ocx kan du se dens versionsnummer. Åben så mscal.dep (ligger i c:\windows\system ligesom ocx'en) og se hvilket versionsnummer dér står - og ret det så det passer. Dependency-filer er ren ascii, de kan åbnes med notepad. Jeg har med held udført denne øvelse.
En idé kan være at distribuere dependency-filerne med i din setup.
Men det kan også skyldes uoverensstemmelse vedr. registry, så er det mere langhåret. Spørgsmålet er besvaret flere gange tidligere på eksperten, skrivning til registry fra en setup er ikke min stærke side, men søg på eksperten efter dependency og registry, hvis det andet ikke løser problemet.
Jeg har prøvet at ændre dep fil versionerne til de rigtige. Det hjalp da også på de fejl meldinger jeg ellers har fået under forløbet. Dog laver den samme fejl endnu. Hvor skal *.dep filerne ligge henne?
Såvidt jeg ved søger et VB-program først efter en OCX i \windows\system. Findes ocx'en ikke der, søges i windows-mappen. Endelig søges i den mappe programmet er startet fra. Findes OCX'en ikke et af de 3 steder, får man en fatal fejl. dependency-filerne skal altid ligge i samme mappe som den OCX de beskriver.
Med hensyn til at distribuere dependency-filer med et projekt er der nogle overvejelser. Princippielt bør man jo give brugeren mulighed for at vælge om en ocx- & dep-fil, skal overskrive allerede eksisterende eller ej. OCX'er findes so mdu har set i forskellige versioner. MSCal kommer altid med Access, og har brugeren f.eks. Office 2000 og du kommer med en MSCal fra Office 97, så er din jo ældre. Overskrives den nyere kan det være at andre programmer kommer til at miste funktionalitet. I en installation, der ikke er beskadiget vil der altid være en dep-fil til en OCX. Hvis du kun overskriver ocx'en med en ældre, har du problemet. Bedst er det hvis setup'en undlader at overskrive filer, der er nyere. Evt. kan du pakke ocx'erne i en særskilt pakke og informere brugeren om kun at installere de ocx'er, der evt. mangler.
Jeg svarede ikke på navne på de 2 øvrige dep-filer. Gå ind i dit projekt og genåbn listen over 'components'. Marker en ad gangen de komponenter du har medtaget. Så står filnavnet på OCX'en nederst i dialog-boksen. dep-filen hedder normalt det samme til fornavn som den OCX den hører til.
Formentlig (jeg bruger win98 og VB5) hedder den til commondialog: comdlg32.dep og den til Data Bound Grid: dbgrid32.dep.
I windows' søgefunktion kan du jo søge på *.dep så for du en komplet liste.
Noget helt andet - prøv evt. Microsoft Installer. Den kan downloades gratis fra microsoft.com.
Jeg har samme problem; mit program var kompilet og setup'en var lavet på en win98. På min win2000 server havde jeg samme problem. Jeg kunne genstarte i det uendelige uden det løste problemet. Men med Installer har jeg ikke problemet længere...
Dette er et kendt problem i forhold til VB6's PDWizard. Det opstår, snår du installerer på for eksempel Win2000. Det du skal gøre, er at slette nogle entries i din setup.lst. Disse entries kan findes under en sektion, som hedder [Bootstrap Files] For eksempel : STDOLE2.TLB, ASYCFILT, OLEPRO32.DLL, OLEAUT32.dll.
Det der sker, er at win2000 har et recovery-feature som reinstallerer system-filer der bliver overskrevet af andre programmer. Det betyder, at selvom din setup opdaterer filerne fint nok, bliver de overskrevet med den gamle version når windows er startet op.
Når jeg laver en setup (med VB5) vælger jeg altid de filer fra (og flere endnu) som maxjolt omtaler. Jeg undlader også ofte fortolkeren, den har folk jo i forvejen! Jeg går ud fra at VB6-setupwizard'en giver samme muligheder. Det er da være nemmere end bagefter at skulle slette filerne i setup-listen. Ingen af mine programmer anvender (eller understøtter) alligevel OLE.
Jeg har iøvrigt lige afprøvet visual installer som nævnt brobaek. Den er sku ret ok. Jeg ved dog stadig ikke om det virker endnu, da min test person er ude af huset!!
Jeg har også tidligere kigget på andre install'ere, men opdagede at ved uninstall blev der ikke spurgt, om man ville bevare fælles filer. Sådan en svaghed laver MS velsagtens ikke. Med VB5 kan jeg dog næppe bruge den omtalte, har været inde på en kigger.
Tak for 'troen' men der står bl.a. på siden: Additionally, Visual Studio 6.0 Service Pack 3 or later must be installed prior to running the Visual Studio Installer setup program.
Det vil jeg jo heller ikke kunne til min 5'er, så det vil jeg ikke give mig ikast med. På den ene eller anden måde har jeg dog altid kunnet få mine programmer i luften, selv om der kræves lidt 'knofedt'.
Jørn: Selv tak. Det jeg er faldet mest for ved ms installer er, at den ser lidt mere tidssvarende ud end den der følger med VB6. Den er dog forbedret siden VB5!!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.