【问题标题】:Windows Installer through Visual Studio: Utilizing multiple cabs in an application? Possible?通过 Visual Studio 安装 Windows 安装程序:在应用程序中使用多个 cab?可能的?
【发布时间】:2012-02-16 13:33:27
【问题描述】:

我有一个从 Visual Studio 2010 的安装和部署项目创建的 Windows 安装程序项目。在安装程序中,我有许多文件需要安装,但只有少数文件需要更改(比如文件总数的 5%,但文件及其名称保持不变,但密码更改,因为它们是数据库文件),其余 95% 保持不变(如图像文件)。

对于这 5% 的文件,我的安装程序必须始终从头开始运行。 VS是否可以支持多个cab创建,例如

用于永久 95% 文件的第一个 cab

用于可更改 5% 文件的第二个 cab

这 95% 的驾驶室是预先创建的,我只需要制作第二辆驾驶室,但是当我安装 msi 时,它会安装两个驾驶室的内容。可以吗??

【问题讨论】:

    标签: c# setup-project setup-deployment


    【解决方案1】:

    Visual Studio 安装项目不支持此功能。一些商业设置创作工具确实支持配置每个 CAB,但您很可能无法获得所需的行为。

    CAB 只是文件的容器。实际的文件信息存储在 MSI 中。因此单独生成 CAB 不是解决方案,因为它们可能与 MSI 数据库不匹配。

    您能做的最好的事情就是尝试找到一个具有良好缓存机制的设置工具。这样您就可以缩短安装程序的构建时间。

    【讨论】:

      【解决方案2】:

      我做了我想做的事,但有点扭曲。

      在我的安装项目中,我删除了永久文件(图像文件)。这将我的 msi 减少到其早期大小的 1/4,并且只需要早期的 1/4 时间来创建。

      然后对于那些永久文件,我编写了一个自定义操作,将这些文件从 sourcedir 传输到 targetdir。

      【讨论】:

      • 这通常没有意义,因为源目录往往在开发人员的机器/构建服务器上,而目标目录在运行安装的机器上 - 通常情况下,两者相同的情况很少见。
      • @Damien_The_Unbeliever:我认为 sourcedir 是 msi 所在的文件夹。在开发人员机器上,它可以是调试/发布文件夹,当写入 CD/DVD 时,sourcedir 是 msi 所在的 cd-rom 驱动器上的文件夹。 targetdir 是安装文件的文件夹。
      猜你喜欢
      • 2011-01-15
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-25
      • 1970-01-01
      • 2015-05-01
      • 2011-03-16
      • 2017-10-19
      相关资源
      最近更新 更多