我正在构建一个VS 2010安装程序,我想根据我在UI中选择的选项将文件复制到app文件夹(UI并不简单,因此唯一的选择是在安装自定义操作中显示自定义对话框)。 问题是自定义操作实际上是在复制文件后执行的。
我能想到的一个可能的解决方案是将所有这些文件安装到app目录中,然后在自定义操作中删除一些不需要的文件。但是这些文件在某种程度上是“安全的”,所以我不想将它们复制到文件系统,即使是很短的时间。
有什么想法吗?
答案 0 :(得分:0)
如果您的文件不应该在文件系统上,那么您的要求就会出现问题。 .msi存储本身是一种开放格式,可以被许多工具读取,因此如果有人知道该文件,他们就可以手动查找和提取它。
我同意最好避免在文件安装后删除这些文件有两个原因。一:它避免了浪费的工作,两个:由于缺少Windows Installer认为应该存在的文件,它不会导致修复方案。您应该弄清楚如何确定这些文件是否应该在安装的早期阶段出现,并设置导致这种情况发生的属性(按条件禁用组件或更改功能状态)。
答案 1 :(得分:0)
MSI对话框中的大多数控件都使用installer properties。例如,复选框可以使用名为MY_CHECKBOX的属性,该属性设置为值,或者它是空的,具体取决于是否选中该复选框。
这些属性可用于调节文件:
在其“属性”窗格中将Condition字段设置为您想要的条件,例如
MY_CHECKBOX =“value”