我有一个Visual Studio安装项目,我希望安装程序只有在选中了我添加到项目UI的“复选框(A)”表单上的复选框时才能创建特定文件夹。该复选框的属性名称是CHECKBOXA1,但我不知道该怎么放在文件夹的Condition属性中,这样只有选中复选框才会创建它。
答案 0 :(得分:19)
在文件夹的“条件”属性中,放置以下内容:
CHECKBOXA1 = 1
这将确保仅在选中CHECKBOXA1时才安装该文件夹。
修改: 好吧,我已经弄清楚如何做到这一点,但它有点搞砸了。关于Visual Studio安装程序的另一个奇怪的怪癖。
假设我们要检查CHECKBOXA1时要安装的文件夹名为'Folder1',我们将把一个示例文件放在Folder1中,名为test.txt。
首先,我们需要创建一个在安装过程中永远不会显示的包含文件夹,但是我们需要它来完成剩下的工作。因此,在“文件系统”窗口中,创建一个文件夹(我称之为“容器”)。我们所讨论的Condition属性应设置为CHEKCBOXA1 = 1,并且可以将DefaultLocation属性设置为您想要的任何位置,例如[ProgramFilesFolder] \ MyApplication。 现在这是重要的部分。确保'Container'文件夹的DefaultLocation属性未设置为[ProgramFilesFolder] \ MyApplication \ Container,因为无论Condition属性如何,它都将始终创建一个'Container'文件夹。好的,它负责容器文件夹。如果这样做正确,当您安装应用程序时,您将永远不会看到Container文件夹。
现在,在File System窗口的Container文件夹中,创建所需的实际文件夹,本例中为Folder1。将其Condition属性设置为CHECKBOXA1 = 1,并确保其中的任何内容的Condition属性也设置为CHECKBOXA1 = 1.
现在,当您运行安装时,只有在选中CHECKBOXA1时才会显示Folder1。
我不明白为什么需要Container文件夹才能使其正常运行,但是它有效,所以我使用它。