10

अस्वीकरण: मुझे पता है कि अगर मैं "गंतव्य पर अतिरिक्त फाइलें छोड़ें" चेकबॉक्स चेक करता हूं तो मैं फ़ोल्डर अनुमतियां बरकरार रख सकता हूं लेकिन मैं नहीं करना चाहता हूं।क्या मैं एक-क्लिक वेब प्रकाशन के दौरान फ़ोल्डर अनुमतियां बरकरार रख सकता हूं?

यह कहा गया है कि, क्या विजुअल स्टूडियो 2010 में एक-क्लिक वेब प्रकाशन को दूरस्थ सर्वर पर किसी फ़ोल्डर की अनुमतियों को बनाए रखने का कोई तरीका है?

विशेष रूप से, मैं ऐप पूल खाते को App_Data फ़ोल्डर में अनुमतियों को संशोधित करना चाहता हूं, लेकिन प्रकाशन प्रक्रिया के दौरान अनुमतियां हमेशा रीसेट हो जाती हैं।

उत्तर

13

डिफ़ॉल्ट रूप से हम ऐप_Data फ़ोल्डर पर वेब परिनियोजित SetAcl प्रदाता को कॉल करेंगे, यह व्यवहार किसी MSBuild प्रॉपर्टी, IncludeSetAclProviderOnDestination द्वारा नियंत्रित होता है। इस संपत्ति के लिए डिफ़ॉल्ट मान % ProgramFiles32% \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets में सत्य है। यदि आप SetAcl प्रदाता को कॉल करने से रोकना चाहते हैं तो आप प्रकाशित करते समय इस संपत्ति को झूठी पर सेट कर सकते हैं। ऐसा करने के लिए इन चरणों का पालन करें।

  1. समान निर्देशिका अपने प्रोजेक्ट के नाम {ProjectName} .wpp.targets
  2. (जहां {ProjectName} अपने वेब अनुप्रयोग परियोजना का नाम है) के साथ एक फ़ाइल बनाने के रूप में में अंदर फाइल पेस्ट MSBuild सामग्री जो इस सूची से नीचे है
  3. विजुअल स्टूडियो में प्रोजेक्ट को फिर से लोड करें (वीएस परियोजना फ़ाइलों को स्मृति में कैश करता है ताकि इस कैश को साफ़ करने की आवश्यकता हो)।

{ProjectName} .wpp.targets

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <IncludeSetAclProviderOnDestination>false</IncludeSetAclProviderOnDestination> 
    </PropertyGroup>  
</Project> 

इस फाइल को आप देख सकते हैं कि मुझे लगता है कि संपत्ति की घोषणा कर रहा हूँ और यह गलत पर मूल्य है स्थापित करने के अंदर। आपके पास यह फ़ाइल होने के बाद, यह विजुअल स्टूडियो के साथ-साथ कमांड लाइन से किसी भी प्रकाशन ऑपरेशन से, हमारी प्रकाशन प्रक्रिया द्वारा स्वचालित रूप से उठाया जाएगा।

क्या आप इसे आज़मा सकते हैं और अगर आपको और समस्याएं हैं तो मुझे बताएं?

+0

ने इसे खींचा। धन्यवाद महोदय। अब, एक फॉलोअप प्रश्न की तरह। यह काम करने के लिए, मुझे ऐप_Data में एक डमी प्लेसहोल्डर फ़ाइल डालना है क्योंकि इसमें प्रारंभ में कोई फ़ाइल नहीं है। (मैं इसका उपयोग कर रहे किसी तीसरे पक्ष की लाइब्रेरी के लिए रनटाइम कैश स्थान के रूप में उपयोग कर रहा हूं।) मुझे नहीं लगता कि मैं "अतिरिक्त फाइलें छोड़ सकता हूं ..." अनचेक कर सकता हूं लेकिन किसी भी तरह से इसे विशेष रूप से App_Data को हटाने के लिए नहीं कहता? – Lobstrosity

+1

मुझे लगता है कि आपको अब डमी फ़ाइल रखना होगा :(क्षमा करें। –

+0

नोट किया गया। आपकी सभी मदद के लिए धन्यवाद। – Lobstrosity

संबंधित मुद्दे