visual studio विजुअल स्टूडियो को आउटपुट निर्देशिका में एक डीएलएल फ़ाइल की प्रतिलिपि बनाने के लिए कैसे करें?




visual-studio visual-c++ (4)

ऊपर दिए गए टिप्पणियों अनुभाग में विवरण मेरे लिए काम नहीं करते थे (वीएस 2013) जब एक सी ++ प्रोजेक्ट से आउटपुट डीएल की प्रतिलिपि बनाने और उसी समाधान के भीतर किसी अन्य सी # प्रोजेक्ट के डीबग फ़ोल्डर को कॉपी करने का प्रयास करते समय।

मुझे निम्न पोस्ट बिल्ड-एक्शन जोड़ना था (प्रोजेक्ट पर राइट क्लिक करें जिसमें एक .dll आउटपुट है) तो गुण -> कॉन्फ़िगरेशन गुण -> ईवेंट बनाएं -> पोस्ट-बिल्ड इवेंट -> कमांड लाइन

अब मैंने दो फ़ोल्डरों में आउटपुट डीएलएल की प्रतिलिपि बनाने के लिए इन दो पंक्तियों को जोड़ा:

xcopy /y $(TargetPath) $(SolutionDir)aeiscontroller\bin\Release
xcopy /y $(TargetPath) $(SolutionDir)aeiscontroller\bin\Debug

मेरे पास एक विजुअल स्टूडियो सी ++ प्रोजेक्ट है जो बाहरी DLL फ़ाइल पर निर्भर करता है। जब मैं प्रोजेक्ट बनाता हूं तो मैं Visual Studio को इस DLL फ़ाइल को स्वचालित रूप से आउटपुट निर्देशिका (डीबग / रिलीज़) में कैसे कॉपी कर सकता हूं?


(यह उत्तर केवल सी # + पर लागू होता है, क्षमा करें, मैंने मूल प्रश्न को गलत तरीके से पढ़ा है)

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

यह .NET या पिनवोक इंफ्रास्ट्रक्चर का हिस्सा होना चाहिए , क्योंकि यह बहुत उपयोगी है .... यह आपके प्रबंधित डीएलएल को एक्सकॉपी का उपयोग करके या एक बड़े विजुअल स्टूडियो समाधान में प्रोजेक्ट संदर्भ के रूप में प्रबंधित करने में आसान बनाता है। एक बार ऐसा करने के बाद, आपको पोस्ट-बिल्ड इवेंट्स के बारे में चिंता करने की ज़रूरत नहीं है।

अद्यतन करें:

मैंने यहां एक और उत्तर https://.com/a/11038376/364818 कोड पोस्ट किया


$ (आउटडियर) वीएस2013 में एक सापेक्ष पथ साबित हुआ, इसलिए मुझे वांछित प्रभाव प्राप्त करने के लिए इसे $ (ProjectDir) के साथ जोड़ना पड़ा:

xcopy /y /d  "$(ProjectDir)External\*.dll" "$(ProjectDir)$(OutDir)"

बीटीडब्लू, आप शुरुआत में 'गूंज' जोड़कर स्क्रिप्ट को आसानी से डीबग कर सकते हैं और बिल्ड आउटपुट विंडो में विस्तारित टेक्स्ट का निरीक्षण कर सकते हैं।


अपनी प्रोजेक्ट में पोस्ट-बिल्ड एक्शन का उपयोग करें, और अपमानजनक डीएलएल की प्रतिलिपि बनाने के लिए कमांड जोड़ें। पोस्ट-बिल्ड एक्शन बैच स्क्रिप्ट के रूप में लिखा जाता है।

आउटपुट निर्देशिका को $(OutDir) रूप में संदर्भित किया जा सकता है। परियोजना निर्देशिका $(ProjDir) रूप में उपलब्ध है। लागू होने वाले सापेक्ष पैच का उपयोग करने का प्रयास करें, ताकि आप पोस्ट-बिल्ड एक्शन को तोड़ने के बिना अपने प्रोजेक्ट फ़ोल्डर को कॉपी या ले जा सकें।





dll