What does BootstrapperPackage mean inside the *.csproj project

30,469

Solution 1

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

<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 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

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

Share:
30,469

Related videos on Youtube

Arve
Author by

Arve

Got a Commodore Vic-20 in 1982. Programming ever since :-)

Updated on July 05, 2022

Comments

  • Arve
    Arve almost 2 years

    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?

    • Jon Coombs
      Jon Coombs over 10 years
      Note that these BootstrapperPackage settings do not affect the build process, but only the ClickOnce installation. (See Arve's link.) AFAIK, the crucial elements to get set to the right .NET Framework version are TargetFrameworkVersion and RequiredTargetFramework.
  • Jon Coombs
    Jon Coombs over 10 years
    "Making sure that .NET is installed isn't really necessary anymore today." Why not?
  • Steffan Donal
    Steffan Donal over 10 years
    .NET is now an integral part of the Windows operating system and has been since Windows 7.
  • John Zabroski
    John Zabroski over 4 years
    @JonCoombs It's a false statement. Despite .NET being an integral part of the Windows operating system, it's possible your program requires a version of the .NET runtime that your OS may not have yet (possibly due to disabling Windows Update).
  • John Zabroski
    John Zabroski over 4 years
    @SteffanDonal I don't think that's the reason. One anachronistic reason is that people should ideally be deploying their applications in a docker container which provides the right runtime. As even desktops move to the cloud in the form of workspaces and "bundles", IT people will be responsible for virtualizing applications, not OSes. As part of DevOps, it makes more sense for developers to certify the environment they built on their local machine will be the environment it gets deployed to. For sure, for sure.