Ben Voigt [C++ MVP]
8/3/2008 12:03:00 AM
"Pavel Minaev" <int19h@gmail.com> wrote in message
news:be3f70fc-80dd-473f-9983-d67fb5011f41@z72g2000hsb.googlegroups.com...
> On Jul 30, 9:08 am, Alexander Wolff
> <AlexanderWo...@discussions.microsoft.com> wrote:
>> I would like to find an easy way to install new versions of an .Net win
>> application.
>>
>> I have 5 TS servers, approximately 500 users connect to them in order to
>> run
>> a .net WIN application.
>>
>> Whenever I install a new version of the application (sometimes happens 3
>> or
>> 4 times within the same day) I have to disconnect users of the terminal
>> servers in another way because when I go to install a new version of an
>> assembly (using xcopy to copy a .dll or .exe file), the xcopy command
>> cancels
>> indicating that the file is being used by another application..
>>
>> Anyone know any more efficient way to install new versions without having
>> to
>> disconnect users?
>
> Version your assemblies properly (using AssemblyVersionAttribute etc),
> and install them side by side - either in separate folders, or in GAC.
> You can't force-switch users who are currently running your
> application without disturbing them, but you can correct shortcuts so
> that any new user logged into the terminal server will start the new
> version of the application.
Incidentally NASA ground-side handles upgrades much the same way -- place
the new version in a new directory and change the data file for the
launcher/menus. Unix (now RHEL) and maybe as many as 3-4 new versions per
year, not day, but it's still the same idea.
Plus, in case the new version has a bug not detected during certification
(programming articles often mention a NASA development process that results
in no bugs whatsoever, but not all software is controlling rocket
thrusters -- V&V is less rigorous for things that don't kill anyone if they
fail) then the old version is still available.