2012-12-10 23 views
7

यह पावरशेल और विजुअल स्टूडियो में एक आम समस्या प्रतीत होता है, फिर भी मामले और समाधान बहुत भिन्न होते हैं। हालांकि कई समान प्रश्नों को देखते हुए, मुझे अभी तक मेरी समस्या के लिए एक समाधान समाधान नहीं मिला।पावरशेल रनटाइम अपवाद - "फ़ाइल या असेंबली लोड नहीं हो सका"

समस्या त्रुटि संदेश

में मौजूद है फ़ाइल या विधानसभा लोड नहीं कर सका 'file: /// C: \ Users \ jenstmar \ डेस्कटॉप \ WinSCP.dll' ओ आर इसकी निर्भरता में से एक। ऑपरेशन समर्थित नहीं है। (HRESULT से अपवाद: 0x80131515) के रूप में .dll WinSCP स्थापना को उसी फ़ोल्डर में स्थित होना माना जाता है

फ़ाइल स्थान, अमान्य है। यह स्थान यह देखने के लिए बदला गया था कि इसका कोई अधिकार या कमी नहीं है, मुझे इसका उपयोग करने के लिए प्रतिबंधित कर दिया गया है।

स्क्रिप्ट लाइन है कि समस्या का कारण बनता है निम्नलिखित के रूप में दिखता है:

# Load WinSCP .NET assembly 
[Reflection.Assembly]::LoadFrom("C:\users\jenstmar\Desktop\WinSCP.dll") | Out-Null 

यह त्रुटि दोनों PowerShell ISE और पी एस आईएसई (x86) में आता है। मैं स्थानीय व्यवस्थापक के रूप में विंडोज एंटरप्राइज़ 64 बिट वातावरण में PowerShell V3.0 चलाता हूं। मैं इस समस्या को कैसे ठीक करुं?

उत्तर

4

इस मामले में समाधान: इसे फिर से निकालें और डाउनलोड करें। मैंने इसे बिना किसी सहायता के पहले फ़ाइल पर भी अनब्लॉक कर दिया। खुशी है कि यह एक आंतरिक मशीन पर था।

+1

किसने सोचा कि यह समाधान होगा। :) मैं अब लगभग 6 घंटे कोशिश कर रहा हूं। धन्यवाद मार्क जेनस्टर –

+4

यदि पावरशेल आईएसई अनब्लॉक करने के समय खुला था, तो उसे बंद करें और फिर से खोलें। यह कुछ परिदृश्यों में डीएलएल को लॉक करना प्रतीत होता है जो कार्रवाई को अनब्लॉक करने में देरी कर रहा है। – tresf

10

फ़ाइल को मूल के कारण लोड होने से अवरुद्ध किया जा सकता है (NTFS streams में संग्रहीत)। गुणों की जांच करें और देखें कि थोड़ा अनब्लॉक बटन जलाया गया है या नहीं। एक बार जब आप इसे अनब्लॉक कर लेते हैं तो शायद यह लोड हो जाएगा ...

+0

यहां भी दस्तावेज किया गया: http://winscp.net/eng/docs/message_net_operation_not_supported –

+0

मेरी वीएम की उपयोगकर्ता निर्देशिका एक साझा ड्राइव पर बदल गई। मुझे पहले फ़ाइल को स्थानीय पीसी में डाउनलोड करना था, फिर लॉक को हटा दें। – Nico

+0

एक बार फ़ाइल अनब्लॉक हो जाने के बाद, पावरहेल को बंद करें और खोलें अन्यथा यह काम नहीं करेगा। – rom

0

मैं ILDASM या dotPeek में WinSCP.dll निर्भरताओं को देखता हूं और फिर WinSCP.dll लोड करने से पहले उन निर्भरताओं को लोड करता हूं। समस्या यह है कि आप PowerShell.exe (या powershell_ise.exe) फ़्यूज़न लोड संदर्भ में चल रहे हैं और असेंबली जो WinSCP.dll इन दो exe के आधार dirs के अंतर्गत नहीं जा रहे हैं। तो आपको सीएलआर लोडर चोक से पहले निर्भर असेंबली लोड करने की आवश्यकता होगी क्योंकि इसे एक आवश्यक डीएलएल नहीं मिल रहा है। अगर आपको यह पता लगाने में मदद की ज़रूरत है कि कौन सी असेंबली नहीं मिल पाती है, तो fuslogvw.exe उपकरण देखें।

बीटीडब्ल्यू, पावरशेल v2 के रूप में आपको [एसआरएए] :: लोडफ्रॉम (...) के बजाय Add-Type -Path <path> का उपयोग करना चाहिए।

3

निम्नलिखित मेरे लिए काम किया (स्टैक ओवरफ़्लो प्रश्न Add-Type load assembly from network UNC share error 0x80131515 से)।

फ़ाइलों में:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe.config C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ powershell.exe.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <runtime> 
     <loadFromRemoteSources enabled="true"/> 
    </runtime> 
</configuration> 
1
Import-Module : Could not load file or assembly 'file:/// *dll path*' or one of 
its dependencies. An attempt was made to load a program with an incorrect format. 
At *script path*.ps1:68 char:2 
+  Import-Module *module path* 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Import-Module], BadImageFormatException 
    + FullyQualifiedErrorId : System.BadImageFormatException,Microsoft.PowerShell.Commands.ImportModuleCommand 

आप ऊपर त्रुटि देखते हैं, यह 32 बिट मोड में विंडोज PowerShell आईएसई (विंडोज PowerShell आईएसई (x86)) चलाने का मुद्दा हो सकता है। आपको एप्लिकेशन विंडोज पावरशेल आईएसई चलाने के लिए है।

यह एप्लिकेशन (विंडोज पावरशेल आईएसई) 64 बिट मोड में है। जब मैंने पावर शेल कमांड को निष्पादित किया, तो यह मेरे लिए ठीक काम कर रहा था।

मैं इसे विभिन्न प्रकार के समाधानों के साथ ठीक करने की कोशिश कर रहा हूं लेकिन यह मेरे लिए काम नहीं करता है। यदि आप इसे 32 मोड चला रहे हैं, तो इसे 64 बिट पर स्विच करें और कोशिश करें।

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