2013-03-23 4 views
17

मैं अपने app.config फ़ाइल में निम्नलिखित है। मैं धीरे चीता उपयोग कर रहा हूँ और सिर्फ इसलिए यह एक diff सर्वर को इंगित करता है विन्यास/entityFramework/defaultConnectionFactory/मानकों/पैरामीटर को बदलना बदलना चाहते हैं। यानी मूल्य-डेटा स्रोत = कुछ-सर्वर ....सही xdt क्या है: इस नोड को बदलने के लिए लोकेटर पैरामीटर?

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <appSettings> 
    </appSettings> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="data source=.;Integrated Security=SSPI;Initial Catalog=SomeDb;MultipleActiveResultSets=true" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
    <system.web> 
    <membership defaultProvider="ClientAuthenticationMembershipProvider"> 
     <providers> 
     <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> 
     </providers> 
    </membership> 
    <roleManager defaultProvider="ClientRoleProvider" enabled="true"> 
     <providers> 
     <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

मैं app.config.release में लेकिन कोई लाभ नहीं हुआ निम्नलिखित की कोशिश की है।

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="data source=dbserver;Integrated Security=SSPI;Initial Catalog=someDb;MultipleActiveResultSets=true" 
        xdt:Transform="Replace" 
        xdt:Locator="XPath(configuration/entityFramework/defaultConnectionFactory/parameters/parameter)" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 

भी xdt:Locator="Match(parameter)" और xdt:Locator="XPath(parameter)

और कई और अधिक करने की कोशिश की, लेकिन यह काम करने के लिए नहीं मिल सकता है।

उत्तर

28

ठीक है। मुझे थोड़ा मूर्ख लगता है लेकिन समाधान यह है कि मुझे एक एक्सडीटी: लोकेटर निर्दिष्ट करने की आवश्यकता नहीं थी।

अगर मैं सिर्फ इस तरह App.Release.Config छोड़ यह प्रविष्टि से मेल खाता की जगह लेगा।

<parameter value="data source=dbserver;Integrated Security=SSPI;Initial Catalog=someDb;MultipleActiveResultSets=true" 
       xdt:Transform="Replace"/> 
    </parameters> 
+9

मूर्खतापूर्ण महसूस न करें, दस्तावेज इसके बारे में बिल्कुल स्पष्ट नहीं है! अपने निष्कर्ष पोस्ट करने के लिए धन्यवाद। –

+0

मैं के साथ एक ही मुद्दा था । उसमें मिलान करने के लिए उपयोग करने के लिए कोई नाम नहीं है इसलिए मैंने बस प्रतिस्थापित करने की अपनी विधि का उपयोग किया। –

+0

@TobyJ - प्रलेखन स्पष्ट नहीं हो सकता है लेकिन जब आप इसके बारे में सोचते हैं, लोकेटर कुछ है कि धुन पर डिफ़ॉल्ट स्थान मैच में मदद करता है। यदि आप कुछ भी नहीं देते हैं, तो तत्वों का पदानुक्रम उपयोग किया जाएगा। (यदि आपको xdt नहीं देना पड़ेगा: श्रृंखला के साथ आपके परिवर्तन में प्रत्येक पूर्वजों तत्व पर लोकेटर) – arviman

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