What does BootstrapperPackage mean inside the *.csproj project

C#Visual Studio-2010Msbuild

C# Problem Overview


I am upgrading lots of C# projects from vs.net 2008 to vs.net 2010 rc. I notice that the upgrade creates a BootstrapperPackage section inside the *.csproj file (include Microsoft.NET.Framework.3.5 and 3.5sp1). I wonder what the BootstrapperPackage does and do I need them?

C# Solutions


Solution 1 - C#

Bootstrapper packages are the basic components you might need to get a .NET program installed. You'll find them listed in the BootsTrapper\Packages subdirectory of the Windows SDK folder (c:\program files\microsoft sdks\windows\v6.0 for VS2008). The ones on my machine are:

  • DotNetFx(Xxx) - installs .NET on the target machine
  • Office2007PIARedist - the Office PIA, required when you automate Office programs
  • ReportViewer - required when you use report viewer
  • Sql Server Compact Edition - required when you use SQL Server Compact
  • SqlExpress - required when you use SQL Express
  • VBPowerPacks - required when you use any VB Power Pack component (PrintForm, Shape etc)
  • vcredist(Xxx) - required when you used any C/C++ code that uses /MD
  • VSTOR30 - required when you used VSTO
  • WindowsInstaller3_1 - installs MSI 3.1 (don't ask)

Making sure that .NET is installed isn't really necessary anymore today. The rest of them might however be required, even if this is a CO install. I think a Setup project can autodetect them reliably.

Solution 2 - C#

<BootstrapperPackage> is the item name for parameters to the BootstrapperItems parameter of the <GenerateBootstrapper> task, in the default project configuration (ie: Microsoft.CSharp.targets). Check http://msdn.microsoft.com/en-us/library/ms164294.aspx">here on MSDN for the documentation.

(So the name "BootstrapperPackage" is arbitrary - which is why documentation for it is difficult to find.)

The GenerateBootstrapper task creates a "setup.exe" that checks for and installs the specified prerequisites before launching another application. Typically that other application will actually be a ClickOnce manifest describing how to install your program.

(The ClickOnce manifest gets opened by Windows Installer, which is why you'll typically have that as one of the prerequisites.)

Solution 3 - C#

OK Found a link. It has something todo with ClickOnce and nothing I need to worry about, I think.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArveView Question on Stackoverflow
Solution 1 - C#Hans PassantView Answer on Stackoverflow
Solution 2 - C#Andrew RussellView Answer on Stackoverflow
Solution 3 - C#ArveView Answer on Stackoverflow