मेरे पास एक विजुअल स्टूडियो प्रोजेक्ट है जो कई डीएलएल संदर्भों पर निर्भर करता है।मेरी अनुमति के बिना निर्माण के दौरान डीएलएल की प्रतिलिपि रोकने के लिए विजुअल स्टूडियो कैसे प्राप्त करें?
<ItemGroup>
<Reference Include="Class1.Project1">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\bin\Class1.Project1.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Class1.Project2">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\bin\Class1.Project2.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
हालांकि, जब मैं एक वेब साइट परियोजना में एक परियोजना निर्भरता के रूप में इस वर्ग में शामिल हैं, दृश्य स्टूडियो ऊपर दिखाए गए निर्भरता की निर्भरता रही है: यहाँ मेरी csproj में उन लोगों के संदर्भ का एक नमूना है। बिल्ड स्टूडियो स्टूडियो के दौरान "स्थानीय स्थानीय प्रतिलिपि" संपत्ति को "ट्रू" में डिफॉल्ट कर रहा है और इन निर्भरताओं को मेरी वेबसाइट की ~/bin निर्देशिका में कॉपी कर रहा है।
यह बदले में, इस निर्देशिका में मौजूद DLL फ़ाइलों के संस्करणों को ओवरराइट कर रहा है।
Could not load file or assembly 'Class5.Project5, Version=3.6.1861.2, Culture=neutral, PublicKeyToken=dfeaee0e3978ac79' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
मैं कैसे दृश्य स्टूडियो डिफ़ॉल्ट "कॉपी स्थानीय" सब कुछ के लिए करने के लिए "गलत" की स्थापना करते हैं: यह निम्न त्रुटि का कारण बनता है? मैं नहीं चाहता कि विजुअल स्टूडियो बिल्डिंग के दौरान स्वचालित रूप से डीएलएल फाइलों की प्रतिलिपि बनाएँ। न ही मैं अपने निर्माण को पर बहुत डीएलएल के विशिष्ट संस्करणों से जोड़ना चाहता हूं। मौजूदा dll फ़ाइलों पर लेखन के लिए उन्हें केवल पठनीय के रूप में स्थापित करने के लिए है को रोकने के लिए सबसे आसान तरीका है:
वीएस प्रत्येक परियोजना को एक अद्वितीय आउटपुट निर्देशिका रखने की आवश्यकता नहीं है। जहां मैं काम करता हूं हमारे पास 1,000 से अधिक प्रोजेक्ट हैं जो सब कुछ टोए एकल बिन निर्देशिका आउटपुट करते हैं। (यह चाल इस आउटपुट निर्देशिका से आपके संदर्भ बनाने के लिए है।) हम नैन का उपयोग बिल्ड की पूर्व शर्त को पॉप्युलेट करते हैं और डीबग और रिलीज बिल्ड के बीच आउटपुट निर्देशिका को साफ करते हैं। यह शायद सबसे अच्छा अभ्यास नहीं है, लेकिन यह निश्चित रूप से काम करता है। –
बहुत दिलचस्प! जब मैंने कोशिश की, वीएस2003 के साथ, मैंने पाया कि संकलन विफल हुआ क्योंकि आउटपुट निर्देशिका में फ़ाइलें उपयोग में थीं, एक परियोजना द्वारा खुलती थी जब कोई चीजों को साफ़ करने की कोशिश कर रहा था। आप विजुअल स्टूडियो का किस संस्करण का उपयोग कर रहे हैं? – Bevan