दिलचस्प पोस्ट
शब्दकोश पाठ फ़ाइल मल्टीपार्ट फॉर्मडेटा के लिए जर्सी 2 इंजेक्शन स्रोत LINQ आदेश बनाम तो बनाम AVCapturePhotoOutput का उपयोग कैसे करें एनएटी में चरित्र से अलग स्ट्रिंग में int कैसे जुड़ें? प्रक्रिया आईडी से प्रक्रिया नाम प्राप्त करें (win32) जाओ, एक्स वाई को लागू नहीं करता (… विधि में एक सूचक रिसीवर है) क्रम में कोणीय एनजी-दोहरा में सरणी वस्तु मान निर्धारित करना कि फ़ाइल c # का उपयोग करके और UNC पथ को हल करने में मौजूद है स्ट्रिंग से पहले 100 अक्षर प्राप्त करें, पूर्ण शब्दों का आदर करें ऑपरेटर में निष्पादन के आदेश << ggplot2 अप्रयुक्त स्तर बारप्लोट रखें शेल / बैच स्क्रिप्टिंग एडीबी शेल को डायरेक्ट कमांड समाधान-चौड़ा पूर्व-बिल्ड ईवेंट? सी में अपनी स्वयं की हेडर फाइल बनाना

वहाँ एक तरह से asp.net परियोजना फ़ाइल में सामग्री फ़ाइलों को स्वचालित रूप से शामिल है?

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

Solutions Collecting From Web of "वहाँ एक तरह से asp.net परियोजना फ़ाइल में सामग्री फ़ाइलों को स्वचालित रूप से शामिल है?"

पुराना धागा, मुझे पता है, लेकिन मुझे यह करने का एक तरीका मिला है कि मैं भूल रहा हूं, और मेरी तलाश में इसे एक आखिरी बार खोजने के लिए, मैंने इस सवाल पर ठोकर खाई। मुझे सबसे अच्छा तरीका मिल गया है यह है कि। सीओपीआरजी फ़ाइल में पहले बिल्डर लक्ष्य का उपयोग करना।

<Target Name="BeforeBuild"> <ItemGroup> <Content Include="**\*.less" /> </ItemGroup> </Target> 

वीएस 2010 इस अनुभाग को नहीं छूएगा, और यह सुनिश्चित करता है कि आपकी फ़ाइलों को हर बार प्रोजेक्ट के निर्माण के रूप में शामिल किया गया है।

आप अपनी वेबसाइट .csproj फ़ाइल का विस्तार कर सकते हैं सिर्फ एक रिकर्सिव वाइल्डकार्ड के साथ अपनी सामग्री रूट फ़ोल्डर जोड़ें:

 ... <ItemGroup> <!-- your normal project content --> <Content Include="Default.aspx" /> <!-- your static content you like to publish --> <Content Include="Images\**\*.*" /> </ItemGroup> ... 

ऐसा करने से आपके ब्राउज़र के अंदर दृश्यमान नीचे यह फ़ोल्डर और सभी सामग्री बनायी जाती है।

अगर आप निर्दिष्ट करके समाधान ब्राउज़र के अंदर फ़ोल्डर को छिपाने का प्रयास करते हैं

 <Content Include="Images\**.*.*"> <Visible>false</Visible> </Content> 

यह प्रकाशित नहीं किया जाएगा


अद्यतन करें

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

तो आपको यह सुनिश्चित करना होगा कि फ़ोल्डर और इसके सामग्रियों को वी.एस. के भीतर से कभी भी संशोधित नहीं किया जाएगा- फाइल जोड़ने या हटाने से केवल फाइल सिस्टम पर ही किया जा सकता है … जो कि आप चाहते थे जैसा कि मैंने आपका प्रश्न समझ लिया।

यह आसान होगा यदि फ़ोल्डर वी.एस. में छिपाया जा सकता है लेकिन मुझे इसे छुपाने और प्रकाशित करने का कोई रास्ता नहीं मिल सका।

एक अन्य असफल दृष्टिकोण में एक CreateItem कार्य द्वारा फ़ोल्डर शामिल करना था। इसके परिणामस्वरूप फ़ोल्डर की सामग्री को \ bin \ app.publish \ … पर प्रकाशित किया गया था और इसे .csproj के अंदर सामग्री आइटम के साथ प्रकाशित करने के लिए आश्वस्त नहीं किया जा सकता था इसलिए मैंने इसे मेरे उत्तर में प्रस्तुत नहीं किया था

आप फ्रेमवर्क की System.IO.Directory.GetFile(string) विधि और इसके अधिभार का उपयोग करके सभी फाइलों को शामिल कर सकते हैं।

  <ItemGroup> <Content Include="$([System.IO.Directory]::GetFiles('$(ProjectDir)Scripts\', '*.js', SearchOption.AllDirectories))" /> <Content Include="$([System.IO.Directory]::GetFiles('$(ProjectDir)Images\', '*.png', SearchOption.AllDirectories))" /> </ItemGroup> 

मैंने लिखा है कि कैसे मैं सामग्री प्राप्त करने में सक्षम था एक छोटी सी powershell स्क्रिप्ट के साथ बनाया:

 $folders = Get-ChildItem .\ -r -Directory $filtered = $folders |Select-Object @{Name='FullName';Expression={$_.fullname.replace($pwd,'')}}, @{Name='FolderDepth';Expression={($_.fullname.Split('\').Count) - ($Pwd.Path.split('\').count)}} | Sort-Object -Descending FullName,folderDepth $basefolders = $filtered | Where-Object{$_.folderdepth -eq 1} $basefoldersobj = @() foreach($basefolder in $basefolders) { $basefoldername =$baseFolder.fullname $filteredbase = $filtered -match "\$basefoldername\\" | Sort-Object -Descending FolderDepth | Select-Object -first 1 if($filteredbase -eq $null) { $filteredbase = $filtered -match "\$basefoldername" | Sort-Object -Descending FolderDepth | Select-Object -first 1 } $obj = New-Object psobject Add-Member -InputObject $obj -MemberType NoteProperty -Name 'Folder' -Value $basefolder.fullname.trim('\') Add-member -InputObject $obj -MemberType NoteProperty -Name 'DeepestPath' -Value $filteredbase.folderDepth $basefoldersobj += $obj } $include = '*.*' foreach($bfolderObj in $basefoldersobj) { $includecount = '' $includecount = "\$include" * ($bfolderObj.Deepestpath) Write-Output "<content Include=`"$($bfolderObj.folder)$includecount`" /> " } 

यह पावरशेल्ड प्रॉम्प्ट पर आवश्यक शामिल स्टेटमेंट का उत्पादन करना चाहिए

आप इस तरह से लिंक के साथ फाइल जोड़ सकते हैं, वे खोज योग्य, दृश्य-सक्षम हैं, लेकिन अगर आप उन्हें बदलने का प्रयास करते हैं, तो वे चेकआउट नहीं करते, दृश्य स्टूडियो जगह में वाइल्डकार्ड छोड़ देता है:

  <ItemGroup> <Content Include="..\Database Schema\Views\*.sql"> <Link>Views\*.sql</Link> </Content> </ItemGroup> 

यह .proj फ़ाइल के अंदर है।

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

मुझे एहसास हुआ कि इसके लिए सबसे अच्छा समाधान मैन्युअल रूप से फ़ाइलों को जोड़ना है, एक-एक करके अगर आपके पास सैकड़ों लोग हैं जैसे मैंने किया था, यह कुछ घंटों का मामला था। अजीब बात है कि 2016 में वीएस 2015 के साथ भी यह गंभीर समस्या अभी भी हल नहीं हुई है। आह, मैं कैसे Xcode प्यार करता हूँ