2014-09-10 48 views
0

我们为我们的安装程序提供了一个Wix项目。是否有可能检查文件是否存在? 基本上,对于我们的一些配置文件,我们希望传入实际上不存在于我们的安装程序脚本中的文件的路径,但将命令行中的文件路径传递给公共属性。 在这种情况下,我们希望配置文件组件在安装期间使用此传递的配置文件而不是默认配置文件。有条件地在Wix中安装组件

这可能吗?

我已经试过这样的事情:

<?if FileExist([PORTALCONFIGPATH])?> 
     <File Id='webConfig' Name='web.config' DiskId='1' Source='[PORTALCONFIGPATH]' KeyPath='yes'/> 
<?else?> 
     <File Id='webConfig' Name='web.config' DiskId='1' Source='web.config' KeyPath='yes'/>    
<?endif?> 

好歹检查文件名通过存在,那么安装传递文件,否则使用默认的文件。

回答

0

该WiX FileSearch,DirectorySearch,ConditionCopyFile元素是你正在寻找使用。创建属性,当执行msi时,如果设置了属性,则DirectorySearch和FileSearch元素将在该属性的路径中查找,并设置另一个属性(例如MYFILEEXISTS),然后如果MYFILEEXISTS CopyFile将与该路径一起运行。

+0

感谢里克,我如何确保我的文件搜索操作在它试图为web.config文件安装组件之前运行? – Nasir 2014-09-10 14:59:32

+0

搜索在文件复制之前执行,不幸的是我似乎无法找到官方文档说明,我确实发现这似乎是说在一个关于方式的回合http://blogs.technet.com/b/alexshev/archive /2008/02/10/from-msi-to-wix-part-3.aspx – 2014-09-10 15:16:08

+0

谢谢,我会试一试并在此发布。 – Nasir 2014-09-10 15:17:54