Install assemblies without disconnecting users who have open files

A

Alexander Wolff

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?

thanks in advance,
Alexander


PD: I do not have this problem to install asp.net assemblies on the web server
 
P

Pavel Minaev

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 havingto
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.
 
G

G.S.

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.

Doesn't One Click deployment do that?
I am not very familiar with it, but I was using it to deploy a Smart-
Client-Factory based application and every build had its own subfolder
and set of assemblies.
 
B

Ben Voigt [C++ MVP]

Pavel Minaev said:
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top