放入单独的文件时会忽略WiX属性

时间:2015-10-06 05:04:57

标签: c# wix windows-installer

我有一个WiX安装项目。

我将我的属性放入一个单独的文件中:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <Property Id="PORT" Value="60010" />
    </Fragment>
</Wix>

我想在我的文件中使用它,对话框如下:

<Dialog Id="ConfigurationDlgUraniaService" Width="370" Height="270" Title="Title">
     <Control Type="Edit" Id="Port" Width="100" Height="15" X="120" Y="60" Text="60000" Property="PORT" Integer="yes" />
</Dialog>

未显示Text="60000"且未显示属性值60010。

如果我在DialogFile

中添加此内容
 <SetProperty Id="PORT" Value="60010" After="AppSearch" />

然后它的工作原理。但我不想重置变量。

是否无法将变量放入单独的文件中?

祝你好运 莱纳斯

1 个答案:

答案 0 :(得分:2)

您有几个选择:

予。 [首选] wxi(包含)文件中定义您的属性,然后将其包含在主wxs创作中:

包含文件(Properties.wxi)可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Include>
  <Property Id="PORT" Value="60010" />
</Include>

然后将其添加到DialogFile.wxs

<?include Properties.wxi?>

II。 替代。引用主wxs的单独DialogFile.wxs文件中定义的任何属性,以包含整个片段。

在这种情况下,包含属性的单独wxs文件保持不变,并且在DialogFile.wxs中您创作此元素(它可以是该文件中定义的任何属性,只需一个就足够了) :

<PropertyRef Id="PORT"/>

此操作将指示WiX包含PORT属性的整个父片段。

在这种情况下,第一种方法看起来更直观。