如何使用条件文件复制设置安装程序项目

时间:2011-07-06 11:06:11

标签: visual-studio-2010 windows-installer installation setup-project

我正在构建一个VS 2010安装程序,我想根据我在UI中选择的选项将文件复制到app文件夹(UI并不简单,因此唯一的选择是在安装自定义操作中显示自定义对话框)。 问题是自定义操作实际上是在复制文件后执行的。

我能想到的一个可能的解决方案是将所有这些文件安装到app目录中,然后在自定义操作中删除一些不需要的文件。但是这些文件在某种程度上是“安全的”,所以我不想将它们复制到文件系统,即使是很短的时间。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您的文件不应该在文件系统上,那么您的要求就会出现问题。 .msi存储本身是一种开放格式,可以被许多工具读取,因此如果有人知道该文件,他们就可以手动查找和提取它。

我同意最好避免在文件安装后删除这些文件有两个原因。一:它避免了浪费的工作,两个:由于缺少Windows Installer认为应该存在的文件,它不会导致修复方案。您应该弄清楚如何确定这些文件是否应该在安装的早期阶段出现,并设置导致这种情况发生的属性(按条件禁用组件或更改功能状态)。

答案 1 :(得分:0)

MSI对话框中的大多数控件都使用installer properties。例如,复选框可以使用名为MY_CHECKBOX的属性,该属性设置为值,或者它是空的,具体取决于是否选中该复选框。

这些属性可用于调节文件:

  • 在解决方案资源管理器中选择您的安装项目
  • 单击解决方案资源管理器顶部窗格中的文件系统编辑器按钮
  • 选择您要调节的文件
  • 在其“属性”窗格中将Condition字段设置为您想要的条件,例如

    MY_CHECKBOX =“value”