Deploy a .NET desktop application lately? I have done several; it's really annoying and expensive. Here's the things that you need to make a deployment happen for a shrink-wrapped desktop software product.
1. Obfuscator - you have to hide all that code you spent months working on. Especially since you don't want your software to be so easy to crack a four year old can do it. It'd be even cooler if this thing also acted like a linker and then compiled your .NET stuff to native code for Windows, but I digress.
2. Licensing - I believe you need three features from licensing: (1) timed evaluation, (2) ease of integration and (3) the ability to produce in an automated way through your payment processor (or even a 3rd party) a license key which will get rid of the time evaluation.
3. .NET Framework - Your customers are using Windows XP. Sorry Microsoft, I know that everyone was supposed to be using Windows Vista, but that plan didn't pan out. So, you have to make sure that the proper version of the .NET Framework is installed, and ideally you'd like to do that before your customer downloads your application (so you know whether to include it in the install or not). Alternatively, you can have your install download it, but then you're writing custom install stuff and not really following the "keeping clicking until it's installed" plan of your customers. How many cancel the install at that point?
Now, the fun part begins. You have to get all of these things to work seamlessly with each other. You'd best hope that your obfuscation doesn't mess up your third party libraries (are they themselves obfuscated, and if so, by the same program, and if so, will it still work) especially your licensing 3rd party tools. What? You wrote your own! Good luck. You have to hope that your licensing has a command line application you can install on your $9 per month server that you are renting (that's undoubtedly Linux, and thus doesn't support the Windows based license key generator that comes with your licensing 3rd party component). You have to hope you can find a linker than will link your obfuscated code, or compile it to native form. Do you know how much those are? Well, let's put it this way, I have to sell like 60 copies of my software in order to pay back the cost of the one I finally settled on (Yay consulting revenue for picking up the tab). Seriously, will the suffering ever end?
No, because now, even if you manage to have overcome all of that, you have either a 3rd party anti-virus product or Microsoft Vista to contend with during installation and during the running of your program. You did put your application data in the application data folder, right? You did move it from Program Files (where it lived forever with your executable because you're naughty)?
Okay, now I am just complaining. It's how I feel though. If I could buy one solution that would link my code, compile it to native form, provide secure licensing and generate license keys from the command line of a Linux machine (or even from within a PHP webpage or Python or something) I certainly would. I've already handed over about $1750 to try to get this sort of thing worked out across a variety of different products and projects. I'm certain that I would at least consider a product that did all of that in that price range.
Get to work MicroISVs, save me from myself. At one point I was seriously considering writing my next application in C. It's fast and distribution is a snap. Not to mention all the libraries and support for it. Am I actually considering this? Are we going forwards or backwards in terms of functionality and ease of use for programmers?