I have a .Net program that I want to install on a terminal server. In the past I've created installer projects and generated an MSI. However, terminal servers require all users be bumped off before running an MSI and I want to avoid that. Is there a way to do an install without a MSI?
Sometimes for some user accounts I can simply copy the .exe and use it. But for other users doing that throws wierd "file not found" errors for files that obviously exist. (Apparently there are registry settings that must be present to run a .net exe that may or may not be present if the exe hasn't been "officially" installed via an MSI?)
yes, in general, unless you need to install a component into the Global Assembly Cache, (GAC), all you need to do is copy the files to a folder on the computer you want to run it on.. To run it, all you need to do is double click the .exe file.
The only caveat is that the machine has to have the correct .net framework installed already...
As suggested, copying would be the simplest.
If you want to create a non-MSI installer, check out NSIS. You can also get great support on the NSIS forum.
I wonder why ClickOnce isn't mentioned ...
It's a "lightweight" installation with minimal work to do as a developer (just fill a few fields and press "publish" in project-properties) and making things easy for the users. The name is the motto: The user has to start the ClickOnce-Application and accept it's installation. The .NET Framework will copy the files to a special ClickOnce-Cache, creates some link to the application (if enabled) and even allows easy auto-updates out-of-the-box. Pre-Requirements can also be checked, e.g. the right .NET Framework or a SQL Server.
You may find more information about it in wikipedia: http://en.wikipedia.org/wiki/ClickOnce
We use Inno Setup ( http://www.innosetup.com/isinfo.php ). I have the best experience with this tool. Its simple, lightweight, free and fast.
.Net apps don't normally need to be "installed". You can usually just put the files you need somewhere on the file system and provide your users with a shortcut to start it.
However, there are some situations where it's desirable. For example, if you want to add an assembly to the GAC, the installation can automate that. If that's the case for you, have you considered ClickOnce deployment? It might be able to handle what you need.
If you just want to do updates of an app (and not install new shortcuts or whatnot) then I would just make a WinRAR self extracting file. You can embed in it the destination directory and specify a quiet install even.
ByteEssence InstallMaker is another free option:
http://www.bytessence.com/bim.html