Tôi nghĩ đó là thuận tiện hơn để sử dụng các yếu tố xmlFile để thay đổi giá trị thuộc tính:
<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>
Bạn phải gán một cách chính xác số lượng trình tự trong đoạn mã trên.
Thuộc tính Chuỗi cũng bị thiếu trong phần tử XmlConfig của bạn, do đó có thể là sự cố với mã của bạn. Một vấn đề khác là định nghĩa thuộc tính ElementPath
. Thêm @enable32BitAppOnWin64
vào đó là sai. Thuộc tính ElementPath
xác định phần tử bạn muốn thay đổi, trong trường hợp của bạn là phần tử add
có thuộc tính name
là DefaultAppPool
. Trong phần tử đó, bạn muốn thay đổi giá trị của một thuộc tính. Bạn chỉ định thuộc tính theo tên của nó. Vì mục đích đó, bạn phải thêm thuộc tính name
vào phần tử XmlConfig
của mình. Kết hợp với thuộc tính Node
được đặt thành value
định nghĩa thuộc tính hoàn tất. Thuộc tính Action
của phần tử XmlConfig phải được đặt thành create
. Thuộc tính VerifyPath
của phần tử XmlConfig được sử dụng để xác định nếu Nút được thêm hoặc sửa đổi.
Phiên bản đúng của nguyên tố XmlConfig của bạn sẽ giống như thế này:
<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>
Nếu cài đặt của bạn sẽ cho bạn biết nó không thể mở tập tin XML, sau đó bạn phải kiểm tra xem giá trị File
thuộc tính là chính xác. Có lẽ bạn cần phải thay đổi nó thành một cái gì đó như "[INSTALLFOLDER]\config\applicationHost.config"
hoặc bất cứ điều gì bạn đặt thuộc tính Id
của thư mục cài đặt của bạn. Nhật ký trình cài đặt sẽ cung cấp cho bạn thông tin mà tệp không thể mở được.
Có hai ElementPath trong bạn sử dụng: XmlConfig –