2011-05-24 10 views
41

मेरे पास कुछ फ़ोल्डर्स हैं जिन्हें मैं प्रोजेक्ट में रखना चाहता हूं लेकिन इसे प्रकाशन में शामिल नहीं करना चाहता हूं।एमएस विजुअल स्टूडियो: कुछ परियोजना फ़ोल्डर्स को प्रकाशन से कैसे बाहर निकालना है?

क्या यह संभव है?

उत्तर

23

माइकल पूरी तरह से सही है, .csproj फ़ाइल को संपादित करने के माध्यम से आप मैन्युअल रूप से फ़ाइलों/फ़ोल्डर को प्रकाशित होने से बाहर कर सकते हैं।

यदि आप .csproj फ़ाइल के साथ गड़बड़ नहीं करना चाहते हैं तो एक आसान तरीका वीएस समाधान एक्सप्लोरर के अंदर फ़ाइल को हाइलाइट करना है। गुण पैनल के तहत, 'सामग्री' से 'none' तक कार्रवाई में परिवर्तन बदलें।

इस तरह आपको समाधान से परियोजना को अनलोड करने की आवश्यकता नहीं है, .csproj लोड करें और आपके द्वारा जोड़े गए प्रत्येक नई फ़ाइल के लिए एक लाइन जोड़ें जिसे प्रकाशित करने की आवश्यकता नहीं है बल्कि इसके बजाय 3 माउस- क्लिक करता है।

(यह मानते हुए आप द्वारा तय किये प्रकाशन टैब के अंतर्गत 'केवल इस आवेदन चलाने के लिए आवश्यक फ़ाइलों को प्रकाशित')

+8

प्रकाशित करने के बाद इसे वापस सेट करने के लिए, ऐसा लगता है जैसे, यह ऐसा लगता है आपके द्वारा अनुशंसित सरल तरीका काम नहीं करता है क्योंकि गुण पैनल पर फ़ोल्डरों के लिए कोई "बिल्ड एक्शन" संपत्ति नहीं है (कम से कम VS2010 और VS2012 में नहीं)। पूरे फ़ोल्डर्स को बाहर करने के लिए (केवल व्यक्तिगत फाइलों के बजाय) आप माइकल के जवाब में संदर्भित समाधान का उपयोग कर सकते हैं। – RSW

+3

@RSW, आप सही हैं। .cproj विकल्प विशेष रूप से 'सामग्री' के रूप में चिह्नित किसी भी फाइल को ओवरराल करता है। हालांकि अगर आपके पास किसी फ़ोल्डर में 'सामग्री' के रूप में चिह्नित कोई फ़ाइल नहीं है तो वह फ़ोल्डर प्रकाशित नहीं किया जाएगा। मैं अभी भी एन फाइलों को चिह्नित करता हूं, फिर उन फाइल सेटिंग्स को एक छिपे/आसानी से भूल गए .csproj एक-लाइनर के साथ ओवरराल करता हूं - लेकिन प्रत्येक का अपना। – jbokkers

+2

_ ".cproj विकल्प विशेष रूप से 'सामग्री' के रूप में चिह्नित किसी भी फाइल को ओवरराल करता है _ _. यह जानना बहुत दिलचस्प और महत्वपूर्ण है ... मुझे इसका एहसास नहीं हुआ! मेरे लिए यह एक संभावित गड़बड़ी है ... अगर मैं पूरे फ़ोल्डर को चिह्नित करता हूं, तो मैं अनजाने में इसके अंदर कुछ ओवरराइड कर सकता हूं। अगर मैं व्यक्तिगत रूप से फाइल करता हूं, तो मैं (या कोई और) बाद में एक फ़ाइल जोड़ सकता हूं और इसे बाहर करना भूल सकता हूं। मुझे लगता है कि अधिकांश डबल-एज वाले तलवारों के साथ, प्रभावों को पूरी तरह से समझना सबसे अच्छा है ताकि आप जो भी पसंद करते हैं, वह अच्छी तरह से सूचित हो। – RSW

17

ऐसा प्रतीत होता है। कृपया Web Deployment: Excluding Files and Folders via the Web Application’s Project File देखें।

+3

यह परियोजना फ़ाइल को संपादित किए बिना भी किया जा सकता है http://www.asp.net/web-forms/tutorials/deployment/advanced-enterprise-web-deployment/excluding-files-and- फ़ोल्डर्स-from-deployment – rdans

+0

इस काम को विजुअल स्टूडियो 2013 में एक आकर्षण पसंद आया। –

+0

अभी तक टूटा हुआ लिंक। –

4

एक और तरीका आप कर सकते हैं कि आप विंडोज एक्सप्लोरर में फ़ोल्डरों को छुपा सकते हैं जिन्हें प्रकाशित होने की आवश्यकता नहीं है (सबसे अच्छा समाधान नहीं है, लेकिन यदि आपके पास छवियों का बड़ा सेट है जो अभी भी विकास बॉक्स में होना आवश्यक है)।

+4

यदि आपके पास वेबसाइट की एक प्रोजेक्ट है तो यह एकमात्र समाधान है। http://forums.asp.net/post/1997766।एएसपीएक्स – RobD

+0

और यदि आपके पास प्रकाशन करने वाली बैच फ़ाइल है, तो आप प्रकाशित करने से पहले ** ATTRIB + H FolderName ** का उपयोग कर सकते हैं ** ** ATTRIB -H फ़ोल्डर नाम ** इसे – mrd3650

13

यदि यह एक वेब साइट परियोजना है, इस प्रकार आप कुछ फ़ोल्डर और/या फ़ाइलों को बाहर कर सकते जल्दी से elimin को Web.cspoj फ़ाइल में

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
This file is used by the publish/package process of your Web project. You can customize the behavior of this process 
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
--> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <WebPublishMethod>FileSystem</WebPublishMethod> 
     <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
     <LastUsedPlatform>Any CPU</LastUsedPlatform> 
     <SiteUrlToLaunchAfterPublish /> 
     <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
     <ExcludeApp_Data>True</ExcludeApp_Data> 
     <publishUrl>D:\YAZILIM\Adopen.2015\PreCompiledWeb</publishUrl> 
     <DeleteExistingFiles>True</DeleteExistingFiles> 
     <PrecompileBeforePublish>True</PrecompileBeforePublish> 
     <EnableUpdateable>True</EnableUpdateable> 
     <DebugSymbols>False</DebugSymbols> 
     <WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption> 
     <UseMerge>True</UseMerge> 
     <SingleAssemblyName>AdoIntranet</SingleAssemblyName> 
     <ExcludeFoldersFromDeployment>customobjects;uploads</ExcludeFoldersFromDeployment> 
     <ExcludeFilesFromDeployment>app.config</ExcludeFilesFromDeployment> 
    </PropertyGroup> 
</Project> 
+0

यह एक अच्छा समाधान है। एक और समान समाधान है * * प्रोजेक्ट नाम> .wpp.targets * फ़ाइल बनाना यदि आपको इन नियमों को सभी प्रकाशित प्रोफाइल पर लागू करने की आवश्यकता है। – crush

+0

यह कहां जाता है? मेरे पास एक .publishproj फ़ाइल है लेकिन इसमें एक टिप्पणी है जो इसे संशोधित नहीं करती है। – nasch

+2

@nasch प्रकाशित परिभाषा फाइलों को संग्रहित किया गया है। \ App_Data \ PublishProfiles एक्सटेंशन के साथ .pubxml – HGMamaci

3

आप क्या कर सकते हैं एक '& बदलें खोजें': (तत्वों ExcludeFoldersFromDeployment और ExcludeFilesFromDeployment देखें) प्रकाशित/तैनाती प्रक्रिया

से एक विशेष फ़ोल्डर खा लिया;

<Content Include="Uploads/ 

<None Include="Uploads/ 
+0

सर्वश्रेष्ठ उत्तर के लिए धन्यवाद – vaqifrv

0

के रूप में सवाल एएसपी के साथ टैग है करने के लिए, वहाँ के साथ गड़बड़ करने के लिए कोई .proj फ़ाइल है। वीएस2015 के साथ, इसके बजाय एक और उपयोगी फ़ाइल है: website.publishproj। और this Asp.Net article on excluding files and folders.wpp.targets फ़ाइल का उल्लेख करता है।

इन सभी फ़ाइलों में <ItemGroup> तत्व हैं, जिनमें <ExcludeFromPackageFolders> जैसे तत्व हो सकते हैं। चूंकि ये प्रलेखित दस्तावेज प्रतीत होते हैं, बस उनका उपयोग करें और हैकिंग या 'मैसेजिंग' के लिए दोषी महसूस न करें। मेरे लिए, उस लिंक के सरल निर्देशों का उपयोग करके निर्देशिका को छोड़कर और website.publishproj फ़ाइल एक आकर्षण की तरह काम करती है!