2012-06-05 10 views
8

में बहिष्कृत फ़ाइल प्रकारों को कैसे शामिल करें वर्तमान में एमएसबिल्ड मेरे बिल्ड ड्रॉप फ़ोल्डर में फ़ाइलों w/the .manifest एक्सटेंशन पर प्रतिलिपि नहीं बना रहा है। मैंने फ़ाइल पर स्पष्ट रूप से प्रतिलिपि बनाने के लिए कमांड जोड़े हैं, लेकिन क्या एक कॉन्फ़िगर फ्लैग है जिसे मैं सेट कर सकता हूं .manifest फ़ाइलें शामिल हैं?MSBuild

उत्तर

10

आप अपने निर्माण में AllowedReferenceRelatedFileExtensions संपत्ति पारित कर सकते हैं। संपत्ति का मूल्य फ़ाइल एक्सटेंशन की अर्द्ध-कॉलन अलग सूची होना चाहिए। Microsoft.Common.targets से:

<!-- 
These are the extensions that reference resolution will consider when looking for files related 
to resolved references. Add new extensions here if you want to add new file types to consider. 
--> 
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' "> 
    .pdb; 
    .xml 
</AllowedReferenceRelatedFileExtensions> 

वहाँ कोई रास्ता नहीं सूची में मान जोड़ने के लिए है। आप केवल पूरी सूची आपूर्ति कर सकते हैं, तो सुनिश्चित करें कि आप चूक, जैसे शामिल करना,

MSBuild.exe MyProject.csproj /t:build "/p:AllowedReferenceRelatedFileExtensions=.pdb;.xml;.manifest" 
+1

मैं अपने निर्माण स्क्रिप्ट और भी .csproj फ़ाइल को तत्व एक PropertyGroup तत्व को एक बच्चे AllowedReferenceRelatedFileExtensions जोड़ा गया है और नहीं देखा फाइलों की प्रतिलिपि बनाई जा रही है (मेरे पास एक स्वचालित निर्माण टीएफएस के माध्यम से चल रहा है)। क्या यह मानता है कि फाइलें प्रोजेक्ट (यानी बिन फ़ोल्डर) का आउटपुट हैं? यदि हां, तो क्या आपको पता है कि मेरे स्वचालित निर्माण को उन फ़ाइलों पर प्रतिलिपि बनाने के लिए क्या करना होगा जो किसी प्रोजेक्ट के आउटपुट नहीं हैं? –

+0

@ जेएम हां। एमएसबिल्ड केवल उन परियोजनाओं को पकड़ लेगा जो आपके प्रोजेक्ट के लिए ओबीजे आउटपुट निर्देशिका में हैं। यदि आपकी .manifest फ़ाइल आउटपुट निर्देशिका में नहीं है, तो आपको शायद अपने .csproj फ़ाइल में पोस्ट-बिल्ड लक्ष्य जोड़ने की आवश्यकता होगी। –