WiX:根据构建和站点位置安装到不同的位置

时间:2011-12-19 15:16:44

标签: wix wix3.5

寻找一种摆脱困境的方法,我的公司已经将自己画成了。

目前,通过手动复制文件并运行各种批处理文件来安装/卸载Windows服务。位置因站点而异,具体取决于安装的代码是用于生产还是测试用途。所以我的调试版本可能需要安装到

C:\someFolder\Site1\Test

虽然相同代码的Release版本将安装到

C:\someFolder\Site1

目前只有2个网站,但可能很快就会扩展。

我正在尝试组建一个WiX安装项目(VS2010,WiX 3.5)来处理安装。我无法更改安装文件夹定义(就像我想的那样!)而且我遇到了试图理解我如何处理问题的问题。成为WiX的新手并没有帮助。

1 个答案:

答案 0 :(得分:0)

关于发布/调试版本的问题: 在代码中定义目标目录的位置,可以根据构建版本有条件地设置它。例如,Debug是一个可用的变量,可以像:

一样使用
         <!-- inside of somefolder/site target definition, conditionally append test dir -->
         <?ifdef var.Debug ?>
           <Directory Id="TestId" Name="test" />
         <?endif?>

您还可以在visual studio中为每种类型的版本添加其他构建因变量。这将是每个目标情境模型的唯一构建。这可能会让用户容易混淆他们应该使用哪个版本。

另一个模型 - 具有灵活目标位置的一个构建: 对于不同的站点目录:取决于如何创建这些站点。  如果它们存在于您的安装之前,则只需使用wix的directorysearch来设置用于构建目标目录的属性。  如果相反,目标目录是在安装时决定的,并且它基于用户的决定,那么您需要提示输入名称或类型(站点)。这类似于要求自定义安装目录的典型情况。您可以修改执行此操作的wix源中包含的示例自定义wix对话框之一,并将该对话框添加到项目的下一个/后一个流程中。