[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

microsoft.public.dotnet.framework

Install assemblies without disconnecting users who have open files

Alexander Wolff

7/30/2008 5:09:00 AM

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

3 Answers

Pavel Minaev

7/30/2008 6:21:00 AM

0

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.

G.S.

7/31/2008 1:54:00 PM

0

On Jul 30, 2:21 am, Pavel Minaev <int...@gmail.com> wrote:
> 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.

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.

Ben Voigt [C++ MVP]

8/3/2008 12:03:00 AM

0



"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.