2010-06-07 14 views
11

में काम नहीं करेगा मैं विजुअल स्टूडियो .NET 2010 में एएसपी.NET प्रोजेक्ट पर काम कर रहा हूं और एक वेब सेटअप प्रोजेक्ट का उपयोग कर एमएसआई इंस्टॉलर बनाने का प्रयास कर रहा हूं। मैंने प्रोजेक्ट से प्राथमिक आउटपुट जोड़ा (जो प्रासंगिक निर्भरताओं में खींचता है) और प्रोजेक्ट की सामग्री फ़ाइलें (जो Web.config और .svc फ़ाइलों में खींचती है)।एएसपी.नेट वेब.कॉन्फिग रूपांतरण इंस्टॉलर

समस्या यह है कि एक्सडीटी ट्रांसफॉर्म को लागू करने और Web.confeconfig का उपयोग करके Web.config बनाने के बजाय, यह सिर्फ Web.config, Web.Release.config, और Web.Debug.config की प्रतिलिपि बनाता है। किसी भी बदलाव किए बिना इंस्टॉलर में।

इंस्टॉलर बनाने से पहले Web.config रूपांतरण को लागू करने के लिए मैं इसे कैसे प्राप्त करूं?

उत्तर

1

जवाब एक और एसओ पद जो मैं याद किया जब मैं क्योंकि यह मैं वास्तव में क्या नहीं चाहते थे मांगने से पहले के माध्यम से खोज रहा था पर स्थित होने के समाप्त हो गया:

MSBuild Script and VS2010 publish apply Web.config Transform

एक सह कार्यकर्ता का उपयोग का सुझाव दिया प्रोजेक्ट की bin निर्देशिका में परिवर्तित वेब.कॉन्फिग को रखने के लिए और एक वेब सेटअप प्रोजेक्ट को बिन निर्देशिका से Web.config को पकड़ने के लिए कॉन्फ़िगर किया गया है और इसे इंस्टॉलर में रखा गया है। यह दृश्य स्टूडियो में किसी ऐड-ऑन इंस्टॉल किए बिना सबसे अधिक व्यावहारिक समाधान बन गया।

0

आपको एक परिनियोजन प्रोजेक्ट बनाना है (मुझे लगता है कि यह एक अलग डाउनलोड है), तो आपकी वेब सेटअप प्रोजेक्ट इनपुट के रूप में तैनाती परियोजना के प्रीकंपिल्टेड आउटपुट लेती है। एक साफ बात यह है कि जब आप इसे बनाते हैं तो आप इसे अपने web.config का एक सेक्शन बदल सकते हैं।

+1

यह उत्तर हो सकता है; हालांकि, मेरे पास व्यवस्थापकीय विशेषाधिकार नहीं हैं (क्योंकि यह एक कार्य कंप्यूटर है) इसलिए मैं इसे सुनिश्चित करने के लिए परीक्षण नहीं कर सकता। \ मैंने रूपांतरण करने के लिए .csproj फ़ाइल में एक प्रविष्टि जोड़ना समाप्त कर दिया - मैं करूंगा जल्द ही विवरण पोस्ट करें। –

17

मैं एक workaround कि मेरे लिए काम करता पाया:

  1. आवश्यक विन्यास (देव, गुणवत्ता आश्वासन, उत्पादन आदि) और संबंधित वेब config परिवर्तनों बनाएँ।

  2. उपयोग नोटपैड या अन्य पाठ संपादक और (प्रोजेक्ट फाइल के अंत के पास) अपने वेब अनुप्रयोग प्रोजेक्ट फ़ाइल (.csproj फ़ाइल) टैग से पहले में निम्नलिखित शामिल हैं:

    <Target Name="AfterBuild"> 
        <TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="Web.Transformed.config" /> 
    </Target> 
    

    शामिल न करें Web.Transformed वेब एप्लिकेशन प्रोजेक्ट में .config - यदि आप दृश्य स्टूडियो करते हैं तो आपको हर बिल्ड के बाद बदलावों के बारे में सतर्क कर दिया जाएगा जो बहुत परेशान है।

  3. वेब सेटअप परियोजना में: सामग्री फ़ाइलों का चयन -> बहिष्करण फ़िल्टर और Web.config जोड़ने (।। और अन्य सभी वेब * config परिवर्तन नियम युक्त फ़ाइलें)।

  4. वेब सेटअप परियोजना में: चयन फाइल सिस्टम संपादक आइकन -> वेब अनुप्रयोग फ़ोल्डर -> फ़ाइल जोड़ें और अपने वेब अनुप्रयोग प्रोजेक्ट फ़ोल्डर के रूट में Web.Transformed.config का चयन करें।

  5. एक ही स्क्रीन में: सही Web.Transformed.config क्लिक करें और इसे नाम बदलने web.config को

अब आपके द्वारा चयनित विन्यास और जड़ web.config फ़ाइल है के साथ फ़ाइलें .msi उत्पन्न करने में सक्षम हैं तब्दील हो! कृपया ध्यान दें कि यह उप फ़ोल्डर में web.config फ़ाइलों को प्रभावित नहीं करता है।

+0

मैं पुष्टि कर सकता हूं कि यह विधि काम करती है। यह इस पोस्ट के अंत में भी विस्तृत है: http://forums.asp.net/p/1596387/4050004.aspx –

+0

+1 एक इलाज किया! –

+0

बिंदु 2 में आप वेब.Transformed.config को जोड़ने की सलाह नहीं दे रहे हैं, लेकिन बिंदु 4 में आप Web.Transformed.config फ़ाइल जोड़ने के लिए कह रहे हैं। दोनों बिंदु एक-दूसरे के विरोधाभास कर रहे हैं या नहीं, मुझे कुछ याद आ रहा है। क्या कोई मुझे विवरण में चरणों को समझने में मदद कर सकता है। –

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