Raar probleem met verwijderen dll-file
Geplaatst: 18 maa 2008, 11:16
Bij een van de bedrijven waar ik voor werk hebben we een gek probleem met het verwijderen van DLL bestanden.
I. Situatie:
een Windows 2000 server met een share die voor heel het bedrijf toegankelijk is - wordt via loginscript op alle clients gemapt als H:\
Op die share, een programma dat van daar gestart kan worden (moet niet geïnstalleerd). Geschreven in clarion (denk ik?), alle nodige DLLs staan in de bijhorende directory.
Alle users gebruiken dat programma tegelijkertijd en starten dat op via een shortcut naar H:\path\programma.exe.
het programma in kwestie is op maat gemaakt voor dit bedrijf en er gebeurt regelmatig onderhoud op: programmeur komt terplaatse of stuurt een nieuwe exe en/of dlls op.
II. Aanleiding:
Nieuwe update gekregen (per mail), met een nieuwe exe (voor een neventoepassing), en een nieuwe DLL file.
III. Het probleem:
1. user1 werkt met het programma
2. user2 wil de aangekregen bestanden updaten, en gooit het oude DLL bestand weg. Dit lukt (of zo lijkt het toch (*))
3. user2 wil de nieuwe DLL kopiëren. Gaat niet, krijgt foutmelding dat het bestand in gebruik is. De oude DLL staat er plots weer.
4. user2 start het programma via de snelkoppeling. Gaat niet, krijgt melding dat het DLL bestand niet kan gevonden worden.
5. Alle andere users die niet in het programma zitten en het willen opstarten krijgen dezelfde melding. De personen die al bezig waren, kunnen rustig doorwerken.
6. Wanneer user1 als laatste het programma sluit, verdwijnt ook de DLL weer, vanzelf.
(*) volgens mij is die DLL nooit echt weggeweest, zie simulering van het probleem hieronder:
IV: Simulering van dit fenomeen.
1. user1 opent het programma
2. user2 delete de DLL - hij lijkt weg
3. user2 refresht zijn windows explorer (F5) - de DLL is terug of is er nog.
4. user2 start programma: fout! DLL niet gevonden
5. user1 sluit programma: DLL verdwijnt
Zeer vervelend; ik zou hebben verwacht dat er een melding komt op het moment dat user2 probeert de DLL te verwijderen (bestand in gebruik, of zo) en dat na de foutmelding het bestand ook blijft staan. En dat hij het opnieuw moet proberen nadat alle users het programma hebben gesloten??
Wie er iemand hoe dit komt en /of wat ik eraan kan doen?
I. Situatie:
een Windows 2000 server met een share die voor heel het bedrijf toegankelijk is - wordt via loginscript op alle clients gemapt als H:\
Op die share, een programma dat van daar gestart kan worden (moet niet geïnstalleerd). Geschreven in clarion (denk ik?), alle nodige DLLs staan in de bijhorende directory.
Alle users gebruiken dat programma tegelijkertijd en starten dat op via een shortcut naar H:\path\programma.exe.
het programma in kwestie is op maat gemaakt voor dit bedrijf en er gebeurt regelmatig onderhoud op: programmeur komt terplaatse of stuurt een nieuwe exe en/of dlls op.
II. Aanleiding:
Nieuwe update gekregen (per mail), met een nieuwe exe (voor een neventoepassing), en een nieuwe DLL file.
III. Het probleem:
1. user1 werkt met het programma
2. user2 wil de aangekregen bestanden updaten, en gooit het oude DLL bestand weg. Dit lukt (of zo lijkt het toch (*))
3. user2 wil de nieuwe DLL kopiëren. Gaat niet, krijgt foutmelding dat het bestand in gebruik is. De oude DLL staat er plots weer.
4. user2 start het programma via de snelkoppeling. Gaat niet, krijgt melding dat het DLL bestand niet kan gevonden worden.
5. Alle andere users die niet in het programma zitten en het willen opstarten krijgen dezelfde melding. De personen die al bezig waren, kunnen rustig doorwerken.
6. Wanneer user1 als laatste het programma sluit, verdwijnt ook de DLL weer, vanzelf.
(*) volgens mij is die DLL nooit echt weggeweest, zie simulering van het probleem hieronder:
IV: Simulering van dit fenomeen.
1. user1 opent het programma
2. user2 delete de DLL - hij lijkt weg
3. user2 refresht zijn windows explorer (F5) - de DLL is terug of is er nog.
4. user2 start programma: fout! DLL niet gevonden
5. user1 sluit programma: DLL verdwijnt
Zeer vervelend; ik zou hebben verwacht dat er een melding komt op het moment dat user2 probeert de DLL te verwijderen (bestand in gebruik, of zo) en dat na de foutmelding het bestand ook blijft staan. En dat hij het opnieuw moet proberen nadat alle users het programma hebben gesloten??
Wie er iemand hoe dit komt en /of wat ik eraan kan doen?