2009-10-26 16 views
7

मैं बुनियादी एमएसआई इंस्टॉलर का उपयोग कर प्रोग्रामडेटा फ़ोल्डर में फ़ाइलों का एक सेट स्थापित करने की कोशिश कर रहा हूं। चूंकि फ़ाइलों की सामग्री गतिशील और स्थापना प्रक्रिया के दौरान उत्पन्न होती है, इसलिए मैं स्थापना के दौरान सी # कोड में फ़ाइलें बना रहा हूं।एमएसआई इंस्टॉलर फ़ाइल/फ़ोल्डर अनुमतियां

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

किसी भी मदद के लिए अग्रिम धन्यवाद।

+0

मुझे यह अजीब लगता है। क्या आपने इंस्टॉलेशन के बाद अनुमतियां जांच ली हैं? क्या वे सिर्फ पढ़ा नहीं जा रहे हैं? –

+0

हां। समस्या यह है कि इंस्टॉलर के दौरान बनाए गए फ़ोल्डर को व्यवस्थापक (या ऐसा कुछ) के लिए डिफ़ॉल्ट अनुमतियां मिलती हैं। मैंने फ़ोल्डर अनुमतियों को मैन्युअल रूप से सेट किया है, जो नियमित उपयोगकर्ताओं को लिखने में सक्षम बनाता है। लेकिन फ़ोल्डर में बनाई गई फाइलें फ़ोल्डर पर मैन्युअल रूप से सेट की गई अनुमतियों का वारिस नहीं करती हैं (बेशक, फ़ाइल इंस्टॉलर में बनाई गई है, जो शायद व्यवस्थापक के रूप में चलती है)। हो सकता है कि समाधान मैन्युअल रूप से फ़ाइलों पर अनुमतियों को समायोजित करना है, हालांकि, मुझे यह एक अच्छा दृष्टिकोण नहीं मिला है। – Kenneth

उत्तर

3

इंस्टॉलर व्यवस्थापक पहुंच के साथ चलता है, जो इसे प्रोग्राम फ़ाइलों में कुछ भी बदलने की अनुमति देगा। एक सामान्य उपयोगकर्ता केवल प्रोग्राम फ़ाइलों फ़ोल्डर और प्रोग्रामडेटा/सामान्य अनुप्रयोग डेटा फ़ोल्डर तक पहुंच पढ़ता होता।

एमएसआई का lock permission table प्रोग्रामडेटा/सामान्य एप्लिकेशन डेटा बनाने के बाद एक सेटअप प्रोग्राम को फ़ोल्डर की अनुमति बदलने की अनुमति देता है। विजुअल स्टूडियो की सेटअप प्रोजेक्ट्स एमएसआई की लॉक अनुमति तालिका का समर्थन नहीं करती है, इसलिए यदि आपको सेटअप प्रोजेक्ट में सामान्य उपयोगकर्ताओं को लिखने के लिए बनाए गए फ़ोल्डर की आवश्यकता है तो आपको SetNamedSecurityInfo का उपयोग करके कस्टम एक्शन में अधिकार देना होगा या एमएसआई डेटाबेस को एक पोस्ट के रूप में संशोधित करना होगा कदम बनाना आप एक एमएसआई संलेखन सॉफ्टवेयर भी ढूंढ सकते हैं जो एमएसआई की लॉक अनुमति तालिका से निपट सकता है।

+0

यह प्रोग्रामडेटा फ़ोल्डर (Vista) के बारे में है, एक सामान्य उपयोगकर्ता को वहां पहुंच/लिखना चाहिए था। –

+0

सामान्य प्रोग्रामडेटा केवल सामान्य उपयोगकर्ताओं को पढ़ा जाता है, सभी उपयोगकर्ताओं को आर/डब्ल्यू प्रदान करने के लिए इंस्टॉल प्रोग्राम को सबफ़ोल्डर बनाने के बाद अनुमति को बदलना होगा। –

1

यदि आप एक कस्टम एक्शन के साथ मैन्युअल रूप से फ़ोल्डर अनुमतियां सेट करते हैं और फ़ाइलों को अन्य कस्टम एक्शन के साथ उत्पन्न और स्थापित करते हैं तो समस्या निष्पादन के आदेश के कारण हो सकती है।

2

मुझे बहुत ही समस्या थी और मैं उदाहरण here उदाहरण का उपयोग करके इसे हल करने में सक्षम था।

1

मुझे यहां एक ही समस्या है। यहां समस्या यह है कि एमएसआई उपयोगकर्ता प्रणाली के साथ फाइलें बना रहा था। और रनटाइम के दौरान एप्लिकेशन लॉग इन उपयोगकर्ता का उपयोग कर रहा था (जिसमें इस फ़ाइल को लिखने की अनुमति नहीं थी)। मैंने जो किया वह इंस्टॉलर द्वारा बनाए गए एप्लिकेशन के प्रारंभिक अनुप्रयोग के दौरान एक नई फ़ाइल (यदि मौजूद नहीं है) बना है। तब इस फाइल में लेखन अनुमति होगी। यह एक अच्छा अभ्यास नहीं है लेकिन मेरी समस्या हल हो गई है।

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