[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

sredmyer

12/21/2010 4:50:00 PM

Ok I know this is a VB forum but I hope maybe some of the folks here
may have seen this behavior and might be able to shed some light on
what is going on.

Here is the senario. I have an application which is run by many user
throughout the company from a network file share. That is to say they
have a shortcut on their desktop that points to the executable on the
file share. On initial install of the application the installer only
copies the dependencies (dlls, ocxs, etc.) to the users local machine.

Any way I have been doing (over the last couple of days) a lot of
incremental fixes which had me deploying the new executable multiple
times with only minor differences.

The problem that I saw was that some users (different ones each time)
would still be running the old version of the application after the
deployment. Upon checking I realized that their shortcut was indeed
pointing to the exe on the network share and they did not have a local
version of the exe that was being launched. The interesting thing is
that teh version running on their machine did not exist anywhere...so
how could it be running???

Well I have an idea that this may have something to do with the
Windows prefetch. It seems that this is supposed to cache parts of
executable code thaat is used frequently to speed up the loading of
that code. So I wonder if maybe this prefetch mechanisim isn't
keeping an old version of my app and that is what these users are
running.

I have not yet been able to find anywhere that explains what is
actually kept in the prefetch...when it is used or how it determines
that what is there is "dirty". I do know that my application (or part
of it anyway) does make it into the prefetch.

Does anyone know if this could indeed be the case...and if so how can
I ensure that the user will always be running the latest version of an
executable.

Thanks,
Steve
5 Answers

DaveO

12/21/2010 4:57:00 PM

0

I discourage my users from running an executable across the network, it can
result in sluggish performance when the network is busy.
I give them a launcher program which when run gets the version numbers of
the local copy and the master copy on a server, if the master is newer the
launcher replaces the local copy with that before starting the program.
There are problems with the mollycoddling attitude of Vista & beyond but
that can be circumvented by not installing the app anywhere near the Program
Files folder tree.

DaveO.

"sredmyer" <sredmyer@sndirect.com> wrote in message
news:c38e4686-9cc6-4014-b4b0-025a9b0266a2@l17g2000yqe.googlegroups.com...
> Ok I know this is a VB forum but I hope maybe some of the folks here
> may have seen this behavior and might be able to shed some light on
> what is going on.
>
> Here is the senario. I have an application which is run by many user
> throughout the company from a network file share. That is to say they
> have a shortcut on their desktop that points to the executable on the
> file share. On initial install of the application the installer only
> copies the dependencies (dlls, ocxs, etc.) to the users local machine.
>
> Any way I have been doing (over the last couple of days) a lot of
> incremental fixes which had me deploying the new executable multiple
> times with only minor differences.
>
> The problem that I saw was that some users (different ones each time)
> would still be running the old version of the application after the
> deployment. Upon checking I realized that their shortcut was indeed
> pointing to the exe on the network share and they did not have a local
> version of the exe that was being launched. The interesting thing is
> that teh version running on their machine did not exist anywhere...so
> how could it be running???
>
> Well I have an idea that this may have something to do with the
> Windows prefetch. It seems that this is supposed to cache parts of
> executable code thaat is used frequently to speed up the loading of
> that code. So I wonder if maybe this prefetch mechanisim isn't
> keeping an old version of my app and that is what these users are
> running.
>
> I have not yet been able to find anywhere that explains what is
> actually kept in the prefetch...when it is used or how it determines
> that what is there is "dirty". I do know that my application (or part
> of it anyway) does make it into the prefetch.
>
> Does anyone know if this could indeed be the case...and if so how can
> I ensure that the user will always be running the latest version of an
> executable.
>
> Thanks,
> Steve


sredmyer

12/21/2010 5:27:00 PM

0

On Dec 21, 11:57 am, "DaveO" <d...@dial.pipex.com> wrote:
> I discourage my users from running an executable across the network, it can
> result in sluggish performance when the network is busy.
> I give them a launcher program which when run gets the version numbers of
> the local copy and the master copy on a server, if the master is newer the
> launcher replaces the local copy with that before starting the program.
> There are problems with the mollycoddling attitude of Vista & beyond but
> that can be circumvented by not installing the app anywhere near the Program
> Files folder tree.
>
> DaveO.
>
> "sredmyer" <sredm...@sndirect.com> wrote in message
>
> news:c38e4686-9cc6-4014-b4b0-025a9b0266a2@l17g2000yqe.googlegroups.com...
>
>
>
> > Ok I know this is a VB forum but I hope maybe some of the folks here
> > may have seen this behavior and might be able to shed some light on
> > what is going on.
>
> > Here is the senario.  I have an application which is run by many user
> > throughout the company from a network file share.  That is to say they
> > have a shortcut on their desktop that points to the executable on the
> > file share.  On initial install of the application the installer only
> > copies the dependencies (dlls, ocxs, etc.) to the users local machine.
>
> > Any way I have been doing (over the last couple of days) a lot of
> > incremental fixes which had me deploying the new executable multiple
> > times with only minor differences.
>
> > The problem that I saw was that some users (different ones each time)
> > would still be running the old version of the application after the
> > deployment.  Upon checking I realized that their shortcut was indeed
> > pointing to the exe on the network share and they did not have a local
> > version of the exe that was being launched.  The interesting thing is
> > that teh version running on their machine did not exist anywhere...so
> > how could it be running???
>
> > Well I have an idea that this may have something to do with the
> > Windows prefetch.  It seems that this is supposed to cache parts of
> > executable code thaat is used frequently to speed up the loading of
> > that code.  So I wonder if maybe this prefetch mechanisim isn't
> > keeping an old version of my app and that is what these users are
> > running.
>
> > I have not yet been able to find anywhere that explains what is
> > actually kept in the prefetch...when it is used or how it determines
> > that what is there is "dirty".  I do know that my application (or part
> > of it anyway) does make it into the prefetch.
>
> > Does anyone know if this could indeed be the case...and if so how can
> > I ensure that the user will always be running the latest version of an
> > executable.
>
> > Thanks,
> > Steve- Hide quoted text -
>
> - Show quoted text -

Yes that is the way I normally do it as well. However this is a
fairly new position for me and they have been doing it this way for
several years and it is what I am stuck with.

DaveO

12/22/2010 11:19:00 AM

0


"sredmyer" <sredmyer@sndirect.com> wrote in message
news:ed7bfcf3-d17a-4e46-9cd4-

>Yes that is the way I normally do it as well. However this is a
>fairly new position for me and they have been doing it this way for
>several years and it is what I am stuck with.

The joys of an inherited system - you have my sympathy.

DaveO.


Dee Earley

12/22/2010 12:09:00 PM

0

On 21/12/2010 16:50, sredmyer wrote:
> Here is the senario. I have an application which is run by many user
> throughout the company from a network file share. That is to say they
> have a shortcut on their desktop that points to the executable on the
> file share. On initial install of the application the installer only
> copies the dependencies (dlls, ocxs, etc.) to the users local machine.
>
> Any way I have been doing (over the last couple of days) a lot of
> incremental fixes which had me deploying the new executable multiple
> times with only minor differences.
>
> The problem that I saw was that some users (different ones each time)
> would still be running the old version of the application after the
> deployment. Upon checking I realized that their shortcut was indeed
> pointing to the exe on the network share and they did not have a local
> version of the exe that was being launched. The interesting thing is
> that teh version running on their machine did not exist anywhere...so
> how could it be running???

It's loaded in memory/running at the time of the update and hasn't been
shutdown since.

When it's restarted, it should get the updated copy from the network.

--
Dee Earley (dee.earley@icode.co.uk)
i-Catcher Development Team

iCode Systems

(Replies direct to my email address will be ignored.
Please reply to the group.)

Helmut_Meukel

12/23/2010 4:23:00 PM

0

Dee Earley hatte dann diese Idee :
> On 21/12/2010 16:50, sredmyer wrote:
>> Here is the senario. I have an application which is run by many user
>> throughout the company from a network file share. That is to say they
>> have a shortcut on their desktop that points to the executable on the
>> file share. On initial install of the application the installer only
>> copies the dependencies (dlls, ocxs, etc.) to the users local machine.
>>
>> Any way I have been doing (over the last couple of days) a lot of
>> incremental fixes which had me deploying the new executable multiple
>> times with only minor differences.
>>
>> The problem that I saw was that some users (different ones each time)
>> would still be running the old version of the application after the
>> deployment. Upon checking I realized that their shortcut was indeed
>> pointing to the exe on the network share and they did not have a local
>> version of the exe that was being launched. The interesting thing is
>> that teh version running on their machine did not exist anywhere...so
>> how could it be running???
>
> It's loaded in memory/running at the time of the update and hasn't been
> shutdown since.
>
> When it's restarted, it should get the updated copy from the network.

That was my first thought, too.
But my experience is, you usually can't replace the old version while
it's running.
I first rename the old exe - this _can_ be done while it's running -
then copy the new version into the shared folder.

Helmut.