2013-08-28 5 views
5

हाय मैं का उपयोग कर एक कॉन्फ़िग फ़ाइल में एक मूल्य सेटिंग बदलने के लिए निम्नलिखित कोशिश कर रहा हूँ:एक मूल्य सेट XmlConfig

<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 फ़ाइल नहीं खोल सका। मैं क्या गलत कर रहा हूं?

उत्तर

2

मुझे लगता है कि यह विशेषता मान को संशोधित करने के 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 तत्व में अनुक्रम विशेषता भी अनुपलब्ध है, ताकि आपके कोड में कोई समस्या हो। एक और समस्या ElementPath विशेषता की परिभाषा है। @enable32BitAppOnWin64 को जोड़ना गलत है। ElementPath विशेषता उस तत्व को ढूंढती है जिसे आप बदलना चाहते हैं, आपके मामले में add तत्व जिसमें DefaultAppPool की विशेषता है। उस तत्व में आप एक विशेषता का मान बदलना चाहते हैं। आप इसके नाम से विशेषता निर्दिष्ट करते हैं। उस उद्देश्य के लिए आपको अपने XmlConfig तत्व में name विशेषता जोड़नी होगी। Node विशेषता के साथ value पर सेट विशेषता विशेषता पूर्ण हो गई है। XmlConfig तत्व की Action विशेषता create पर सेट की जानी चाहिए। 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 विशेषता को सेट किया है। इंस्टॉलर लॉग आपको उस जानकारी के साथ प्रदान करना चाहिए जो फ़ाइल खोला नहीं जा सका।

+1

आपके उपयोग में दो एलिमेंटपैथ हैं: XmlConfig –

संबंधित मुद्दे