Something only loosely related to Tfs, but good to know nevertheless: when creating Visual Studio Add-Ins and Extensions & deploying them with or included in a .msi installer file, you might need to start & stop Visual Studio during de-installation or when upgrading an existing installation.
Visual Studio cleans up Extensions that are ‘marked’ for removal only after a restart of VS, however when the upgrade/uninstall steps in your .msi do not start & stop Visual Studio automatically, you might run into problems, particularly in the upgrade scenario (your extension gets marked for removal but isn’t actually removed ‘yet’, then you install the newer version and next time the user starts Visual Studio, VS does in fact clean up your upgraded Extension & the user wonders what happened).
Anyway, there’s a simple solution for that, namely calling ’devenv.exe /setup’ once. This spawns a devenv.exe childprocess which starts and stops VS once, cleaning up all extensions marked for removal. This is somewhat misleadingly documented in MSDN, if you’re using Wix to create your .msi, you can use the corresponding Custom Action (e.g. ’VS2010Setup’ for VS2010) in the ’WixVSExtension’.
In combination with watching, closing or restarting running devenv.exe processes during installation, you’re all set for a smooth (de-)installation and upgrade experience for your users.
Slightly confusing problem but easy to fix.