visual studio वीएस-2010 परियोजना में फ़ाइलों को कैसे शामिल करें, उन्हें निर्माण या प्रकाशित करने के दौरान स्वचालित रूप से आउटपुट निर्देशिका बनाने के लिए कॉपी करें




visual-studio msbuild (6)

कार्य विजुअल स्टूडियो 2010 प्रोजेक्ट बनाने के लिए है, ताकि किसी भी बिल्ड या प्रकाशित के दौरान कुछ foo.exe उपयोगिता को आउटपुट ( bin ) निर्देशिका में कॉपी किया जाना चाहिए।

शुरुआती मैंने PostCuildEvent कार्य को .csproj (MSBuild-file) में बनाया है:

<PropertyGroup>
  <PostBuildEvent>
    Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
  </PostBuildEvent>
</PropertyGroup>

लेकिन यह सार्वभौमिक नहीं है। प्रकाशन के दौरान (विजुअल स्टूडियो 2010) foo.exe bin निर्देशिका में प्रकट होता है, लेकिन आउटपुट प्रकाशित निर्देशिका में कॉपी नहीं किया जाता है। हो सकता है कि मैं सब कुछ पूरी तरह से गलत करता हूं और बाद में परियोजनाओं में फ़ाइलों को शामिल करने के लिए मानक तंत्र है, निर्माण या प्रकाशन के दौरान, bin कॉपी किया गया है?


अपनी सेवा / वेब प्रोजेक्ट से लापता डीएल के संदर्भ को सीधे जोड़ने का प्रयास करें। एक अलग परियोजना के संदर्भ जोड़ना मेरे लिए काम नहीं करता था।

मुझे केवल अपना वेब ऐप प्रकाशित करते समय ऐसा करना पड़ा क्योंकि यह सभी आवश्यक डीएलएल की प्रतिलिपि नहीं बना रहा था।


समाधान एक्सप्लोरर में, कृपया उन फ़ाइलों का चयन करें जिन्हें आप आउटपुट निर्देशिका में कॉपी करना चाहते हैं और दो गुणों को असाइन करना चाहते हैं: - क्रिया = सामग्री बनाएं - आउटपुट निर्देशिका में कॉपी करें = हमेशा कॉपी करें

यह चाल करेगा।


मुझे केवल बिल्ड के दौरान फ़ाइलों को धक्का देने की आवश्यकता है, इसलिए मैंने अभी इस तरह एक पोस्ट-बिल्ड इवेंट कमांड लाइन एंट्री जोड़ा है:

Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"

आप इसे समाधान एक्सप्लोरर में अपने प्रोजेक्ट पर राइट-क्लिक करके सेट कर सकते हैं, फिर गुण> बिल्ड ईवेंट


बस मेरे साथी न्यूरोनिक रूप से खराब कामरेडों को यहां पर मौका मिल सकता है, मैंने माना था कि, वेब प्रोजेक्ट्स के लिए, यदि लिंक की गई फाइल बाहरी .config फ़ाइल थी, तो "आउटपुट निर्देशिका" एक ही निर्देशिका होगी जो web.config में रहती है, यानी आपकी वेब परियोजना की जड़। पूर्व-निरीक्षण में, यह पूरी तरह से असुरक्षित है कि यह लिंक की गई फ़ाइल को रूट / बिन फ़ोल्डर में कॉपी करता है।

इसलिए, यदि यह एक ऐप सेटिंग्स में फ़ाइल शामिल है, तो आपका web.config का खुला टैग होगा

<appSettings file=".\bin\includedAppSettingsFile.config">

ओह।


  1. अपनी परियोजना में फ़ाइल जोड़ें।
  2. उस फ़ाइल की गुणों पर जाएं।
  3. एंबेडेड संसाधन में "बिल्ड एक्शन" सेट करें।
  4. हमेशा कॉपी करने के लिए "आउटपुट निर्देशिका में कॉपी करें" सेट करें।

वहाँ है और यह पोस्ट बिल्ड घटनाओं पर निर्भर नहीं है।

फ़ाइल को अपनी प्रोजेक्ट में जोड़ें, फिर फ़ाइल गुणों में "आउटपुट निर्देशिका में कॉपी करें" या तो "हमेशा कॉपी करें" या "नई अगर कॉपी करें" के अंतर्गत चयन करें।

MSDN देखें।





project