2010-09-15 12 views
17

कुल नौसिखिया प्रश्न पर खराब अनुमतियों के साथ विफल रहा। (बहुत बुनियादी स्क्रिप्ट, नहीं कुछ भी करने से) मैं एक निर्माण सर्वर पर एक Nant स्क्रिप्ट चलाने के लिए कोशिश कर रहा हूँ, और यह त्रुटिनैन बिल्ड सर्वर

System.Security.SecurityException साथ नाकाम रहने है: प्रकार की अनुमति के लिए अनुरोध 'System.Security .Permissions.FileIOPermission, mscorlib, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b77a5c561934e089 'असफल रहा।

इसे चलाने के लिए मुझे क्या करना चाहिए?

+0

थोड़ा और विवरण प्रदान करते हैं: आप किस निर्माण सर्वर का उपयोग कर रहे हैं ?, आपकी नेंट स्क्रिप्ट क्या कर रही है? संभवतः नमूना कोड पेस्ट करें। –

+0

ऐसा लगता है कि यह प्रश्न एक ही समस्या हल करता है: http://stackoverflow.com/questions/8605122/how-do-i-resolve-configuration-errors-with-nant-0-91 आशा है कि मदद करता है! –

उत्तर

14

@ टीके का जवाब यहां है, मुझे विश्वास है, हालांकि यह नेटवर्क ड्राइव से चल रहा है या नहीं, यह उतना सरल नहीं हो सकता है।

मेरे पास @Aidan जैसा ही समस्या है। यह पता चला है कि मैंने नैनकंट्रिब (v .86) असेंबली को मेरी बिल्ड सिस्टम में इस तरह से कॉपी किया था कि विंडोज 7 ने नान्टोन्ट्रिब असेंबली तक पहुंच प्रतिबंधित कर दी है। इसे ठीक करने के लिए, मैंने पहले nantcontrib ज़िप फ़ाइल को मेरे निर्माण वीएम में कॉपी किया था, फिर .zip की सामग्री के साथ अवरुद्ध असेंबली को ओवरराइट किया था। विंडोज 7 ने देखा कि फाइलें स्थानीय प्रणाली से आ रही थीं (जो भी अविश्वसनीय स्रोत से मैंने मूल रूप से कॉपी की थी) और यह असेंबली को अनवरोधित कर दिया था।

असेंबली (जैसे @ टीके के लिंक) पर भरोसा करने का शायद अधिक प्रत्यक्ष माध्यम है, लेकिन यह मेरे लिए काम करता है।

आपको यह त्रुटि फिर से देखते हैं, तो दो बातें देखने:

पहले, Nant (v 0.91 अल्फा 2) रिपोर्टिंग वास्तव में क्या त्रुटि है एक सभ्य काम करता है। मैं @Adian रूप में एक ही त्रुटि देखा था, एक पूर्ण त्रुटि ढेर के साथ साथ, और अंत में इस जानकारी (जोर मेरा):

विधानसभा या AppDomain कि विफल था: NAnt.Contrib.Tasks, संस्करण = 0.86। 3319.0, संस्कृति = तटस्थ, PublicKeyToken = अशक्त विधि कि विफलता का कारण बना था: NAnt.Core.Task CreateChildTask (System.Xml.XmlNode)
विधानसभा में विफल रहा है कि था की जोन: इंटरनेट
यूआरएल की असफल असेंबली थी: फ़ाइल: /// सी:/प्रोग्राम फ़ाइलें (x86)/NAntBuilder 2/nantcontrib/bin/NAnt.Contrib.Tasks.dll

दूसरा, अपमानजनक असेंबली के संपत्ति पृष्ठ को देखें (मेरे मामले में, Nant.Contrib.Tasks.dll)। अगर फ़ाइल को अविश्वसनीय स्रोत से कॉपी किया गया है, तो आपको गुण अनुभाग (उन्नत के नीचे ...) में एक "अनब्लॉक" बटन दिखाई देगा, जिसमें एक नोट के साथ कहा गया है कि फाइलें अविश्वसनीय स्रोत से आई थीं।

0

क्या आप नेटवर्क शेयर ड्राइव पर नेंट स्क्रिप्ट चला रहे हैं?

यदि ऐसा है तो आपको नेटवर्क शेयर पर .NET कोड निष्पादित करने की अनुमति देने के लिए .NET Caspol नीति को कॉन्फ़िगर करने की आवश्यकता हो सकती है।

Using CasPol to Fully Trust a Share

इस लिंक से आपको मदद करने में सक्षम हो सकता है।

25

मेरे त्रुटि संदेश "इंटरनेट क्षेत्र" का उल्लेख किया। ऐसा शायद इसलिए है क्योंकि मैंने SourceForge से ज़िपित बाइनरी डाउनलोड की हैं।मैंने ज़िप्प किया और फिर ज़ोन को पट्टी करने के लिए अनजिप किया और यह मेरे लिए बहुत अच्छा काम करता था।

विंडोज 7 (या समान) पर:

  1. NAnt फ़ोल्डर
  2. राइट क्लिक में सभी फ़ाइलों का चयन करें, करने के लिए> कंप्रेस्ड (ज़िप) फ़ोल्डर भेजें
  3. राइट नई ज़िप फ़ाइल पर क्लिक करें और चुनें एक नया फ़ोल्डर

निकाले फ़ाइलों को अब "इंटरनेट क्षेत्र" से किया जाएगा करने के लिए "सभी निकालें ..."

  • निकालें। यदि आप चाहें तो मूल निर्देशिका में वापस कॉपी कर सकते हैं।

  • +1

    सही काम करता है, धन्यवाद! – Eddietec

    6

    यह समस्या विंडोज़ ""Zone.Identifier" एनटीएफएस में मेटाडेटा को" इंटरनेट "(या किसी अन्य क्षेत्र में जो आपको स्पष्ट रूप से पहुंच प्राप्त करने के लिए अनब्लॉक करना है) को सेट करने के कारण होती है।

    फ़ाइलों की प्रतिलिपि करते समय फ़ाइल सुरक्षा मेटाडेटा को लिखा नहीं जा सकता है या, मेरे मामले में, किसी नेटवर्क ड्राइव पर ज़िप फ़ाइल से अनजिप करने के लिए, या तो ज़िप फ़ाइल को स्थानीय फ़ोल्डर में कॉपी करने से पहले इसे अनजिप करने से पहले कॉपी करें, जैसा कि पहले सुझाया गया था, या उस मेटाडेटा को हटाने के लिए Sysinternals से "streams.exe" उपकरण चलाएं।

    उदाहरण के लिए, अगर मैं exe के पर streams.exe चलाने मेरी डाउनलोड फ़ोल्डर में:

    streams.exe *.exe 
    
    Streams v1.56 - Enumerate alternate NTFS data streams 
    Copyright (C) 1999-2007 Mark Russinovich 
    Sysinternals - www.sysinternals.com 
    
    C:\Downloads\jre-6u27-windows-x64.exe: 
        :Zone.Identifier:$DATA  26 
    

    आम तौर पर, streams.exe कोई मेटाडेटा जानकारी प्रदर्शित नहीं होता अगर फ़ाइलें सभी एक स्थानीय फ़ोल्डर से जन्म लिया है। यदि आप इन ":Zone.Identifier:$DATA" मेटाडेटा (एनटीएफएस में एक वैकल्पिक डेटा स्ट्रीम के रूप में संग्रहीत) देखते हैं, तो आपको फ़ाइलों के गुण संवाद में अनब्लॉक बटन भी देखना चाहिए।

    थोक में फ़ाइलों को अनवरोधित करने के लिए, अपने समस्याग्रस्त फ़ोल्डर से "streams.exe -s -d *.*" चलाएं।

    +0

    मैंने एनएएनटी निर्देशिका में इसका कोई फायदा नहीं हुआ, फिर एनएच स्रोत निर्देशिका में किया और चीजों ने निर्माण शुरू किया। –

    0

    जब आप NAnt डाउनलोड करते हैं, तो आपको ज़िप फ़ाइल (ईमानदारी निकालने से पहले) पर राइट क्लिक करना होगा, फिर गुण, और फ़ाइल को अनवरोधित करने पर क्लिक करें। फिर सब कुछ निकालें और यह काम करेगा।