BootstrapperPackage在* .csproj项目中是什么意思


73

我正在将许多C#项目从vs.net 2008升级到vs.net 2010 rc。我注意到升级在* .csproj文件(包括Microsoft.NET.Framework.3.5和3.5sp1)内创建了BootstrapperPackage部分。我想知道BootstrapperPackage是做什么的,我需要它们吗?


2
请注意,这些BootstrapperPackage设置不会影响构建过程,只会影响ClickOnce安装。(请参阅Arve的链接。)AFAIK,要设置为正确的.NET Framework版本的关键元素是TargetFrameworkVersion和RequiredTargetFramework。
乔恩·库姆斯

Answers:


24

引导程序包是安装.NET程序可能需要的基本组件。您会在Windows SDK文件夹的BootsTrapper \ Packages子目录中找到它们(对于VS2008,为c:\ program files \ microsoft sdks \ windows \ v6.0)。我机器上的是:

  • DotNetFx(Xxx)-在目标计算机上安装.NET
  • Office2007PIARedist-Office PIA,在您自动执行Office程序时需要
  • ReportViewer-使用报告查看器时需要
  • SQL Server Compact Edition-使用SQL Server Compact时需要
  • SqlExpress-使用SQL Express时需要
  • VBPowerPacks-使用任何VB Power Pack组件(PrintForm,Shape等)时必需
  • vcredist(Xxx)-使用任何使用/ MD的C / C ++代码时需要
  • VSTOR30-使用VSTO时需要
  • WindowsInstaller3_1-安装MSI 3.1(不要问)

今天,确实不再需要确保已安装.NET。但是,即使安装了CO,也可能需要其余的它们。我认为安装项目可以可靠地自动检测到它们。


1
“今天确定不再需要安装.NET。” 为什么不?
乔恩·库姆斯

4
.NET从现在开始Windows,它已成为操作系统的组成部分Windows 7
Steffan Donal

@JonCoombs这是一个错误的声明。尽管.NET是Windows操作系统不可或缺的一部分,但您的程序可能需要操作系统可能尚未提供的.NET运行时版本(可能是由于禁用了Windows Update)。
John Zabroski

@SteffanDonal我不认为这是原因。一个过时的原因是,理想情况下,人们应该将其应用程序部署在提供正确运行时的Docker容器中。随着台式机以工作区和“捆绑”的形式迁移到云中,IT人员将负责虚拟化应用程序,而不是OS。作为DevOps的一部分,对于开发人员而言,认证他们在本地计算机上构建的环境(即部署到其的环境)更有意义。当然可以
John Zabroski

16

<BootstrapperPackage>是默认项目配置(即:)中任务参数的BootstrapperItems参数的项目名称。在MSDN上查看此处的文档。<GenerateBootstrapper>Microsoft.CSharp.targets

(因此名称“ BootstrapperPackage”是任意的,这就是为什么很难找到其文档的原因。)

GenerateBootstrapper任务创建一个“ setup.exe”,该文件在启动另一个应用程序之前检查并安装指定的先决条件。通常,其他应用程序实际上是一个ClickOnce清单,描述了如何安装程序。

(ClickOnce清单由Windows Installer打开,因此通常会将其作为先决条件之一。)


8

确定找到一个链接。我认为,这与ClickOnce有关,而我无需担心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.