Deployment using .NET Framework Client Profile
Deployment is a mess from a developer's perspective. You almost always end up studying complex new tools you use only once, since the next time you'll need you'll need to learn a next generation (and totally different) new tool.
But one problem we always try to solve: how to move only the minimum set of libraries needed in order to run our software.
Until not so long ago, when deploying a .NET client, one would had to make sure that the relevant .NET framework is installed on the client's machine. If it was not, the installation package would download the .NET framework and install it.
My friend Tami tipped me about a better technique.
Microsoft now allows you to build a .NET Framework Client Profile which is a subset of the .NET framework - a subset that contains only the relevant libraries needs to get a .NET 3.5 application up and running.
Here are some references:
MSDN: .NET Framework Client Profile