Search code examples
deploymentwindows-server-2008tfsbuildterminal-services

How can we overwrite EXE files while users are running them?


Background:

Our companies internal user's run our .Net programs on 10-20 windows terminal servers. The executables are all stored on a central file server running windows 2003. Some of the terminal servers are running windows 2003 and some are running 2008.

Issues:

When we release a new version of one of our programs we renamed the files that might be locked (EXE, DLL's, ect.), then we copy the newer version of the file to the proper location. This worked flawlessly until we started introducing windows 2008 terminal servers. Now if a user on one of the 2008 WTS is running the program, then the files are locked in such a way that they cannot even be renamed.

Questions

  • Is there a way to rename the locked file?

  • Is there a way to disable this new feature of 2008 that is locking the EXE files while they are being run?

  • Is there a better solution?


Solution

  • Our problem turned out to be because of a new feature in windows file sharing called "Opportunistic Locking." It's currently impossible to turn this feature off when both servers are 2008.

    We currently have a case open with Microsoft looking for other solutions and work a rounds. Leaning towards using DFS at the moment.