2011-05-25 14 views
17

विजुअल स्टूडियो 2010 में, मैं एक प्रोजेक्ट टेम्पलेट बनाना चाहता हूं जिसमें दो फाइलों के लिंक शामिल हैं जो सिस्टम पर मौजूद होना चाहिए। उनमें से एक एक आम AssemblyInfo.cs फ़ाइल है। दूसरा एक मजबूत नाम कुंजी फ़ाइल (* .snk) है।मैं विजुअल स्टूडियो प्रोजेक्ट टेम्पलेट कैसे बना सकता हूं जिसमें लिंक की गई फ़ाइलें शामिल हैं?

मुझे इन संदर्भों को रिश्तेदार होने की आवश्यकता है, क्योंकि प्रत्येक डेवलपर का कार्यक्षेत्र अलग-अलग स्थापित किया जाएगा। क्या प्रोजेक्ट टेम्पलेट के लिए किसी भी तरह यह पता लगाना संभव है कि ये फ़ाइलें प्रत्येक डेवलपर के पर्यावरण में कहाँ रहती हैं?

टेम्पलेट्स के बारे में पढ़ने से, ऐसा लगता है कि वे बहुत स्थिर हैं इसलिए मुझे आश्चर्य है कि इस तरह कुछ करने के लिए चालें की जा सकती हैं या नहीं। यदि कुछ और नहीं है, तो मैं फर्जी संदर्भ जोड़ सकता हूं जो संकलन त्रुटियों का कारण बनेंगे और डेवलपर को इन फ़ाइलों को हुक करने के लिए बाध्य करेंगे। लेकिन अगर मैं उनके लिए ऐसा कर सकता हूं, तो यह बेहतर होगा।

+0

क्या आपको कभी इसका समाधान मिला? –

उत्तर

1

आप अपने प्रोजेक्ट टेम्पलेट में विज़ार्ड को एकीकृत करने और लिंक की गई फ़ाइलों पर पथ सेट करने का प्रयास कर सकते हैं। अगर मुझे सही याद है तो आपको उपयोगकर्ता इंटीफेस बनाने की ज़रूरत नहीं है; आपको केवल प्रतिस्थापन डिक्शनरी में सही प्रतिस्थापन निर्दिष्ट करना होगा और वीएस आपकी टेम्पलेट फ़ाइल में मानों को प्रतिस्थापित करेगा। अधिक जानकारी के लिए this या this देखें।

2

माइक्रोसॉफ्ट ने पुष्टि की है कि यह विस्तारशीलता मॉडल और प्रोजेक्ट टेम्पलेट्स के साथ एक बग है। मैं IWizard का उपयोग कर इसे गोल करने में कामयाब रहा। मैं अपने IWizard कार्यान्वयन के RunFinished विधि में निम्न कोड कहा:

//Get linked file directory 
    string coreDir = Path.GetDirectoryName(MyProject.FullName); 

    //Data folder 
    ProjectItem propertiesProjectItem = slSharedProject.ProjectItems.Cast<ProjectItem>().Where(p => p.Name == "Data").First(); 
    propertiesProjectItem.ProjectItems.AddFromFile(coreDir + @"\Service\TheFileIWantToLink.cs"); 

TheFileIWantToLink.cs की एक प्रति में इस कोड को लिंक को अपने साझा किए सिल्वरलाइट परियोजना (slSharedProject) फ़ाइल।

17

आपको CreateInPlace प्रॉपर्टी को true पर vstemplate में सेट करना चाहिए। documentation कहते

निर्दिष्ट करता है कि क्या परियोजना बनाने के लिए और बताए गए स्थान पर पैरामीटर प्रतिस्थापन करते हैं, या एक अस्थायी स्थान में पैरामीटर प्रतिस्थापन प्रदर्शन और उसके बाद निर्दिष्ट स्थान पर परियोजना को बचाने के।

आप संबंधित पथ काम करना चाहते हैं, तो आप जहाँ आप एक अस्थायी स्थान में परियोजना, बना रहे हैं नहीं जगह में होने के लिये पैरामीटर प्रतिस्थापन की जरूरत है।

+1

मुझे जो चाहिए, उस पर स्पॉट करें। एमएसडीएन दस्तावेज के बारे में बस एक त्वरित नोट, यह बताता है कि डिफ़ॉल्ट सत्य है लेकिन यह वास्तव में वीएस 2012 परियोजना टेम्पलेट्स के लिए झूठा लगता है। –

+0

CreateCPlace VC++ प्रोजेक्ट टेम्पलेट्स के लिए टूटा हुआ है। एक बग के रूप में पुष्टि की गई: http://connect.microsoft.com/VisualStudio/feedback/details/789683/problem-with-createinplace-tag-in-project-template – makhdumi

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

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