2011-08-11 7 views
5

मैं एक web.config ट्रांसफॉर्म फ़ाइल बनाने की कोशिश कर रहा हूं जो ऐपसेटिंग मान की सूची को "झूठी" में बदल देगा नाम में "कॉन्फ़िगर" शब्द शामिल है।xdt का उपयोग करने के साथ समस्या: Web.config में स्थिति "प्रारंभ-युक्त" या "शामिल" स्थिति में स्थानांतरित करें

<add name="Config.Showlog" value ="true" /> 

बदलने फ़ाइल

<appSettings> 
    <add xdt:Transform="SetAttributes(value)" 
     value="false" 
     xdt:Locator="Condition(starts-with(@name,'Config')"/> 
</appSettings> 

विजुअल स्टूडियो 2010 है एक त्रुटि दिखाता है:

Condition Requires exactly 1 arguments.

मैं भी करने की कोशिश की है कि Xpath साथ xdt: लोकेटर के लिए एक विशेषता के रूप में और एक ही त्रुटि मिली। ऐसा लगता है कि समस्या यह है कि कैसे VS 2010 अभिव्यक्ति को Condition() या Xpath() के अंदर अभिव्यक्त करता है।

आप इस मुद्दे के आसपास कैसे काम कर सकते हैं?

उत्तर

4

मैं निम्नलिखित समाधान के साथ आया था:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <appSettings> 
    <add xdt:Transform="SetAttributes(value)" 
     value="false" 
     xdt:Locator="Condition(contains(@key, 'Config'))"/> 
    </appSettings> 
</configuration> 

यह <appSettings><add> तत्वों है कि 'कॉन्फ़िग' 'झूठा' के लिए key विशेषता में शामिल के सभी value गुण सेट हो जाएगा।

<add key="SomeOtherAppSettings" 
    value="OriginalValue" /> 
<add key="An entry containing Config in the key attribute" 
    value="false" /> 
1

यह समस्या दृश्य स्टूडियो के साथ स्थापित Microsoft.Web.Publishing.Tasks.Dll में एक बग है दृश्य स्टूडियो 2010 के साथ एक बग है 2010

माइक्रोसॉफ्ट ने विजुअल स्टूडियो 2012 आरटीएम (See feedback) के साथ इस मुद्दे को सही किया है।

उन लोगों के लिए जो अभी भी विजुअल स्टूडियो 2010 पर Microsoft.Web.Publishing.Tasks.Dll$(MSBuildToolsPath)\MSBuild\Microsoft\VisualStudio\v10.0\Web में $(MSBuildToolsPath)\MSBuild\Microsoft\VisualStudio\v11.0\Web में अद्यतन फ़ाइल के साथ समस्या हल करेंगे और सफल निर्माण की अनुमति देगा।

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