您好,我正在尝试使用以下命令更改配置文件中的值设置:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlConfig Id="Enable32BitAppPool" Node="value"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]/@enable32BitAppOnWin64"
File="[inetsrv]\config\applicationHost.config"
Value="true" On="install"/>
</Component>
此代码不会更改中的值applicationHost.config
文件。我尝试添加action="create"
但随后我在安装过程中收到错误,无法打开 XML 文件。我究竟做错了什么?
我认为使用XmlFile元素修改属性值更方便:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlFile Id="Enable32BitAppPool"
Action="setValue"
Name="enable32BitAppOnWin64"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]"
File="[inetsrv]\config\applicationHost.config"
PreserveModifiedDate="yes"
SelectionLanguage="XPath"
Sequence="INSERTCORRECTSEQUENCENUMBERHERE"
Value="true" />
</Component>
您必须在上面的代码片段中正确分配序列号。
您的 XmlConfig 元素中也缺少 Sequence 属性,因此您的代码可能存在问题。另一个问题是定义ElementPath
属性。添加@enable32BitAppOnWin64
这是错误的。这ElementPath
属性定位您想要更改的元素,在您的情况下add
元素具有name
的属性DefaultAppPool
。在该元素中,您想要更改属性的值。您可以通过名称指定属性。为此,您必须添加name
归因于你的XmlConfig
元素。结合Node
属性设置为value
属性定义完成。这Action
XmlConfig 元素的属性必须设置为create
. The VerifyPath
XmlConfig 元素的属性用于确定是否应添加或修改节点。
XmlConfig 元素的正确版本应如下所示:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlConfig
Id="Enable32BitAppPool"
Action="create"
Node="value"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]"
File="[inetsrv]\config\applicationHost.config"
Name="enable32BitAppOnWin64"
Value="true"
On="install"/>
</Component>
如果您的安装程序告诉您无法打开 XML 文件,那么您必须检查是否File
属性的值是正确的。也许你需要将其更改为类似的内容"[INSTALLFOLDER]\config\applicationHost.config"
或任何你设置的Id
您的安装目录的属性为。安装程序日志应向您提供无法打开哪个文件的信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)