ওয়েবকনফাইগ রূপান্তর সহ অ্যাপসেটেটিং বিভাগে বৈশিষ্ট্যের মান কীভাবে পরিবর্তন করবেন


260

নিম্নলিখিত ওয়েবকনফাইগ অ্যাপসেটেশন ফাইলটি কি রূপান্তর করা সম্ভব:

<appSettings>
    <add key="developmentModeUserId" value="00297022" />
    <add key="developmentMode" value="true" />
    /* other settings here that should stay */
</appSettings>

এরকম কিছুতে:

<appSettings>
    <add key="developmentMode" value="false" />
    /* other settings here that should stay */
</appSettings>

সুতরাং, আমি এ কী সরানোর প্রয়োজন developmentModeUserId , এবং আমি কি 'র জন্য মান প্রতিস্থাপন করা প্রয়োজন developmentMode

উত্তর:


452

আপনি যেমন কিছু চান:

<appSettings>
  <add key="developmentModeUserId" xdt:Transform="Remove" xdt:Locator="Match(key)"/>
  <add key="developmentMode" value="false" xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"/>
</appSettings>

আরও দেখুন: ওয়েব অ্যাপ্লিকেশন প্রকল্পের স্থাপনার জন্য ওয়েবকনফিগ ট্রান্সফর্মেশন সিনট্যাক্স


24
কীগুলি সংবেদনশীল!
কসমিন

2
দুর্দান্ত উত্তর। আমি তৃতীয় পক্ষের বিকল্পগুলি ধীর চিতা এর মতো চেষ্টা করছিলাম এবং কোথাও পাচ্ছিলাম না - এটি সহজ এবং নিখুঁত ছিল।
স্টিভ

2
@ স্টেভেনস: আপনার যদি স্বর চিতা দরকার হয় আপনি যদি রূপান্তর করতে চান তবে বলুন, দেশীয় অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশন কনফিগ ফাইলগুলি। যদিও বাকী বাক্যটি স্মরণ করিয়ে দিলে তা অভিন্ন হওয়া উচিত (স্লো চিতা ব্যবহার করতে করতে কিছুক্ষণ হয়ে গেল)।
এললেসিডিল

ধীর চিটটার বিকল্প হ'ল মায়োথারকনফিগ.স্টেজিংকনফিগ তৈরি করা এবং ওয়েবে.স্টেজিং.কনফিগ রূপান্তর করতে, ওয়েবকনফিগ-এ মায়োথারকনফিগ.কনফিগের রেফারেন্সটি রূপান্তর করুন
নোলোগো

3
কেবলমাত্র একটি ছোট্ট স্পষ্টতা যা কিছু লোককে সহায়তা করতে পারে: xdt:Transform="SetAttributes" xdt:Locator="Match(key)"অংশটি ওয়েব.ওয়েসন.কনফিগে ব্যবহার করা উচিত এবং ওয়েবকনফিগ ফাইলে নয়।
ব্যবহারকারী 3533716

11

সমস্ত অ্যাপসেটেটিংগুলি প্রতিস্থাপন করা হচ্ছে

এটি হ'ল ওভারকিল কেস যেখানে আপনি কেবল ওয়েবকনফিগের পুরো বিভাগটি প্রতিস্থাপন করতে চান। এই ক্ষেত্রে আমি ওয়েলকনফিগের সমস্ত অ্যাপসেটেটিংগুলিকে প্রতিস্থাপন করব ওয়েব.রেলিজ.কমফিগ-এ নতুন সেটিংস। এটি আমার বেসলাইন ওয়েবকনফাইগ অ্যাপসেটিংস:

<appSettings>
  <add key="KeyA" value="ValA"/>
  <add key="KeyB" value="ValB"/>
</appSettings>

এখন আমার ওয়েব.রেলেজ.কনফিগ ফাইলটিতে আমি এক্সডিটিংস বিভাগটি তৈরি করতে যাচ্ছি কারণ আমি এক্সডিটি: ট্রান্সফর্ম = "রিপ্লেস" বৈশিষ্ট্যটি অন্তর্ভুক্ত করব যেহেতু আমি কেবলমাত্র পুরো উপাদানটি প্রতিস্থাপন করতে চাই। আমাকে এক্সডিটি ব্যবহার করতে হবে না: লোকেটার কারণ সনাক্ত করার মতো কিছুই নেই - আমি কেবল স্লেটটি পরিষ্কার করে সমস্ত কিছু প্রতিস্থাপন করতে চাই।

<appSettings xdt:Transform="Replace">
  <add key="ProdKeyA" value="ProdValA"/>
  <add key="ProdKeyB" value="ProdValB"/>
  <add key="ProdKeyC" value="ProdValC"/>
</appSettings>

মনে রাখবেন যে ওয়েবে.রেইল.কমফাইগ ফাইলটিতে আমার অ্যাপসেটেটিং বিভাগে দুটির পরিবর্তে তিনটি কী রয়েছে এবং কীগুলি এমনকি একই নয়। এখন আমরা উত্পন্ন ওয়েব.config ফাইলটি দেখি যখন আমরা প্রকাশ করি তখন কী ঘটে:

<appSettings>
   <add key="ProdKeyA" value="ProdValA"/>
   <add key="ProdKeyB" value="ProdValB"/>
   <add key="ProdKeyC" value="ProdValC"/>
 </appSettings>

যেমনটি আমরা প্রত্যাশা করেছিলাম - ওয়েব.কনফিগ অ্যাপসেটিংগুলি ওয়েব.রেইল কনফিগারেশনের মানগুলির দ্বারা সম্পূর্ণরূপে প্রতিস্থাপন করা হয়েছিল। এটা সহজ!


9

আপনি যদি ওয়েব অ্যাপ্লিকেশন সেটিংসটিকে ওয়েব কনফিগারেশন ফাইল থেকে ওয়েবে রূপান্তর করতে চান তবে আপনাকে নিম্নলিখিত পদক্ষেপগুলি করতে হবে। আপনার ওয়েব কোডফাইগ অ্যাপ্লিকেশন সেটিং ফাইলটি এটি হতে দিন-

<appSettings>
     <add key ="K1" value="Debendra Dash"/>
  </appSettings>

রূপান্তরটির জন্য এখন এখানে ওয়েব.রিলিজ.কনফিগ।

<appSettings>
    <add key="K1" value="value dynamicly from Realease"
       xdt:Transform="SetAttributes"
          xdt:Locator="Match(key)"   
         />
  </appSettings>

এটি কে 1 এর মানটিকে রিলেস মোডে নতুন মানে রূপান্তর করবে।


1

আমি প্রয়োজনের চেয়ে আরও কোনও তথ্য রূপান্তর করতে পছন্দ করি না। সুতরাং কীগুলি পুনরায় চালু করার পরিবর্তে আমি কেবল শর্ত এবং উদ্দেশ্যটি বর্ণনা করি । অন্তত আইএমও এরকম করার পরে উদ্দেশ্যটি দেখতে আরও সহজ। এছাড়াও, আমি চেষ্টা করি এবং xdtপাঠকের কাছে ইঙ্গিত করার জন্য সমস্ত গুণাবলী প্রথমে রাখি, এগুলি রূপান্তর এবং নতুন জিনিস সংজ্ঞায়িত হচ্ছে না।

<appSettings>
  <add xdt:Locator="Condition(@key='developmentModeUserId')" xdt:Transform="Remove" />
  <add xdt:Locator="Condition(@key='developmentMode')" xdt:Transform="SetAttributes"
       value="false"/>
</appSettings>

উপরের দিকে এটি দেখতে অনেক সহজ যে প্রথমটি উপাদানটি সরিয়ে ফেলছে। দ্বিতীয়টি বৈশিষ্ট্য নির্ধারণ করছে। এটি এখানে আপনি সংজ্ঞায়িত কোনও বৈশিষ্ট্য সেট / প্রতিস্থাপন করবে। এই ক্ষেত্রে এটি সহজভাবে সেট valueকরা হবে false

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.