c# फ़ाइल या असेंबली लोड नहीं हो सका... पैरामीटर गलत है




exception compiler-construction (21)

हाल ही में मैंने सी # समाधान पर निम्नलिखित अपवाद को पूरा किया:

त्रुटि 2 फ़ाइल या असेंबली 'Newtonsoft.Json, संस्करण = 3.5.0.0, संस्कृति = तटस्थ, PublicKeyToken = b9a188c8922137c6' या इसकी निर्भरताओं में से एक लोड नहीं हो सका। पैरामीटर गलत है। (HRESULT से अपवाद: 0x80070057 (E_INVALIDARG))

यह या तो मेरे कोड या असेंबली के नाम पर निर्भर नहीं है (जैसे इस मामले में Newtonsoft.Json )।

जब मैं समाधान से इस डीएल को हटाता हूं तो संकलक एक ही अपवाद में दूसरे के बारे में बताता है। तो मुझे लगता है कि मेरे पीसी पर कुछ शोर बंद हो गया है :)


ऐसा लगता है कि भ्रष्ट असेंबली का संदर्भ दिया जा रहा है।

दोनों को साफ करो:

  1. आपके प्रोजेक्ट का \ bin फ़ोल्डर

  2. अस्थायी फ़ोल्डर (विंडोज़ में C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files होनी चाहिए 7)

और देखें कि त्रुटि अभी भी होती है या नहीं


यह सुनिश्चित करने के लिए कि क्या सुनिश्चित करना है - निम्न रजिस्ट्री कुंजी जोड़ें:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog (DWord set to 1).

फिर आप नीचे की तरह आउटपुट देखेंगे। यह आपको बताता है कि एएसपीनेट आपके डीएलएल लोड करने का प्रयास कर रहा है। इस निर्देशिका को साफ़ करें।

LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\app\AtlasAdvisor\web\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet.DLL.**
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet/Avanade.ViddlerNet.DLL**.

क्लियरिंग सी: \ विंडोज \ माइक्रोसॉफ्ट.नेट \ फ्रेमवर्क \ v2.0.50727 \ अस्थायी एएसपी.नेट फाइलें मेरे लिए काम करती हैं। भविष्य में इस मुद्दे से बचने के लिए हटाने की प्रक्रिया को स्वचालित करने की सोच।


अस्थायी फ़ोल्डर से सभी फ़ाइलों को साफ़ करें (सी: \ उपयोगकर्ता \ उपयोगकर्ता_नाम \ AppData \ स्थानीय \ Temp \ अस्थायी ASP.NET फ़ाइलें \ प्रोजेक्ट फ़ोल्डर)


मेरे मामले में मैं एक COM दृश्य डीएलएल संकलित करना चाहता था। समस्या यह थी कि इस डीएलएल का एक पुराना संस्करण यहां स्थित था:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

इस प्रकार विजुअल स्टूडियो ने नए संकलित एक के बजाय इस संस्करण को लोड किया, क्योंकि इसे पंजीकृत करने का प्रयास किया गया।


इन फ़ोल्डरों से सभी फाइलों को हटाएं।

सी: /विंडोज़ / माइक्रोसॉफ्ट.NET/Framework/v4.0.30319/ समकालीन एएसपी.नेट फ़ाइलें सी: /विंडोज़ / माइक्रोसॉफ्ट.NET/Framework64/v4.0.30319/ समकालीन एएसपी.नेट फ़ाइलें


यदि आप SQL Server 2012 के डेटा टूल्स का उपयोग कर रहे हैं, जो 1 मई 2013 को VS2010 खोल का उपयोग करता है, तो अपनी कॉन्फ़िगरेशन प्रबंधक सेटिंग्स जांचें। वर्कफ़्लो से xCPWorkflow में एक सर्वर नाम परिवर्तन सटीक रूप से उत्पन्न करने के लिए पर्याप्त था पैरामीटर गलत है (HRESULT: 0x80070057 (E_INVALIDARG) से संदेश ) संदेश।


यदि आप X64 चला रहे हैं, तो आपको कुछ और स्पॉट साफ़ करने की आवश्यकता हो सकती है। बस मेरी उपयोगकर्ता निर्देशिका को साफ करना पर्याप्त नहीं था।

  1. % TEMP% \ अस्थायी एएसपी.नेट फ़ाइलें
  2. सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v2.0.50727 \ अस्थायी एएसपी.नेट फ़ाइलें
  3. सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v4.0.30319 \ अस्थायी एएसपी.नेट फ़ाइलें
  4. सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v2.0.50727 \ अस्थायी एएसपी.नेट फ़ाइलें
  5. सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v4.0.30319 \ अस्थायी एएसपी.नेट फ़ाइलें

यह सूची बढ़ेगी जैसे कि आपके पास ढांचे के अन्य संस्करण स्थापित हैं।


आप या तो अपने एप्लिकेशन को साफ, निर्माण या पुनर्निर्माण कर सकते हैं या सी: \ उपयोगकर्ता \ YOUR USERNAME \ AppData \ Local \ Temp पर अस्थायी ASP.NET फ़ाइलों को हटा सकते हैं

यह जादू की तरह काम करता है। मेरे मामले में मेरे पास एक असेंबली बाध्यकारी समस्या थी जिसमें कहा गया था कि फ़ाइल ब्ला ब्ला ब्ला लोड नहीं हो सका

आप समाधान 2 को http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St रूप में भी देख सकते हैं


कभी-कभी आपको, इस फ़ोल्डर को साफ़ करने की आवश्यकता होती है: सी: \ विंडोज \ Temp \ अस्थायी ASP.NET


आप संकुल निर्देशिका को भी साफ़ कर सकते हैं और NuGet को अनुपलब्ध संकुल को फिर से डाउनलोड करने की अनुमति दे सकते हैं

यह मेरे लिए मुद्दा हल किया


समस्या एक संदर्भित कक्षा पुस्तकालय के .NET रनटाइम संस्करण से संबंधित है (विस्तारित संदर्भ, लाइब्रेरी का चयन करें और "रनटाइम संस्करण" की जांच करें। मुझे अपने दृश्य स्टूडियो प्रोजेक्ट को v4.5 में अपग्रेड करने के बाद Antlr3.Runtime के साथ कोई समस्या थी। माइक्रोसॉफ्ट एएसपी.नेट वेब ऑप्टिमाइज़ेशन फ्रेमवर्क को अनइंस्टॉल करने के लिए NuGet का उपयोग किया गया (निर्भरताओं की एक श्रृंखला के कारण जो मुझे सीधे Antlr3 को अनइंस्टॉल करने से रोकता था)

मैंने तब माइक्रोसॉफ्ट एएसपी.नेट वेब ऑप्टिमाइज़ेशन फ्रेमवर्क को पुनर्स्थापित करने के लिए NuGet का उपयोग किया। इसने सही रनटाइम संस्करणों को पुनः स्थापित किया।


मुझे एक ही त्रुटि का सामना करना पड़ा क्योंकि एप्लिकेशन को C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\ फ़ोल्डर में निर्भर ढांचे नहीं मिला। मैं बस अपने विजुअल स्टूडियो की मरम्मत करता हूं जिसमें उपरोक्त स्थान में आवश्यक ढांचे को जोड़ा गया है और यह ठीक काम कर रहा है।


मुझे साफ़ करना पड़ा

सी: /विंडोज़ / माइक्रोसॉफ्ट.NET/Framework/v4.0.30319/ समकालीन एएसपी.नेट फ़ाइलें

केवल तभी समस्या हल हो गई।


मेरे मामले में, मेरे प्रोजेक्ट गुणों में IISExpress पोर्ट नंबर को बदलकर, समस्या हल हो गई।


मुझे लगता है कि बहुत सारी तकनीकें एएसपी की अस्थायी निर्देशिकाओं को साफ़ करने के बारे में पोस्ट की गई हैं। this उत्तर में आपकी मशीन पर होस्ट किए गए प्रत्येक नेट फ्रेमवर्क से संबंधित रन-टाइम। लेकिन मेरा मानना ​​है कि हमें स्पष्ट कट रसद पता होना चाहिए कि हमें सभी नेट फ्रेमवर्क की सभी अस्थायी कामकाजी निर्देशिकाओं को अंधाधुंध करने की आवश्यकता क्यों है। मेरे अनुसार, यह मामला नहीं होना चाहिए।

मेरी सलाह यह होगी कि आपको इस मुद्दे को हल करने के लिए पिन पॉइंट डायरेक्टरी क्लीयरिंग दृष्टिकोण का प्रयास करना चाहिए। आप कैसे जानेंगे कि कौन सी निर्देशिका को साफ़ करना है?

  1. आईआईएस पर जाएं और संदर्भ मेनू खोलने के लिए बाएं नेविगेशन फलक में अपनी वेबसाइट नोड पर राइट क्लिक करें। संदर्भ मेनू में Advanced Settings विंडो खोलने के लिए Manage Application -> Advanced Settings... Manage Application करने के लिए इंगित Manage Application
  2. उस एप्लिकेशन पूल को चेक करें जिस पर आपकी वेबसाइट असाइन की गई है। मेरे मामले में यह नीचे दिखाए गए DefaultAppPool :

  1. अब आईआईएस में बाएं नेविगेशन बार में Application Pools नोड पर जाएं। अब जांचें कि कौन सा सीएलआर संस्करण आपके ऐप पूल द्वारा चलाया जा रहा है। मेरे मामले में यह नीचे दिखाए गए अनुसार v4.0 है:

चूंकि मेरे ऐप पूल द्वारा होस्ट किया जा रहा सीएलआर संस्करण v4.0 है, इसलिए मैंने केवल एएसपी .NET v4.0 से संबंधित फ़ोल्डर में केवल अस्थायी फ़ाइलों को स्पष्ट रूप से साफ़ किया है:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

और बस। मेरी समस्या हल हो गई।

सबक सीखा : यह इस तथ्य का संकेत है कि आपकी वेबसाइट द्वारा उपयोग की जाने वाली सभी अस्थायी फ़ाइलों को कई निर्देशिकाओं में बिखराया नहीं गया है, लेकिन उन्हें एक बार आपके ऐप पूल द्वारा संदर्भित किया जा रहा है। तो आपको केवल उस विशिष्ट फ़ोल्डर को साफ़ करने की आवश्यकता है।


स्रोत नियंत्रण से द्विआधारी के ताजा सेट प्राप्त करने में मदद मिली।

धन्यवाद


माइक्रोसॉफ्ट ऑफिस के लिए एक अलग डीएलएल के बारे में एक ही त्रुटि प्राप्त करने के लिए मेरे पास सीमेंस टीम सेंसर 10 क्लाइंट के उपयोगकर्ता थे। अन्य उत्तरों में से कोई भी काम नहीं किया। समाधान फ़ोल्डर्स को हटाना था

C:\Users\%username%\AppData\Local\assembly\

धन्यवाद एलेक्स आपके दूसरे बिंदु ने मुझे इसे ठीक करने में मदद की।

ऐसा प्रतीत होता है कि जब तक आप विंडोज 7 में एक व्यवस्थापक के रूप में दृश्य स्टूडियो नहीं चलाते हैं, यह सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v2.0.50727 \ अस्थायी एएसपी.नेट फ़ाइलों के बजाय स्थानीय रूप से आपकी अस्थायी फ़ाइलों को संग्रहीत करता है।

निम्नलिखित ब्लॉग पोस्ट देखें: http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx समकालीन-ASPNET-files-in-Vista-or-Windows- http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx


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


COM wrapper dlls को संदर्भित करते समय यह हो सकता है। संदर्भों के तहत, अपने विजुअल स्टूडियो प्रोजेक्ट के भीतर, COM wrapper dlls को संदर्भित किया जा रहा है और सुनिश्चित करें कि उनके पास निम्नलिखित गुण मान हैं: "एम्बेड इंटरऑप प्रकार": गलत और "विशिष्ट संस्करण": गलत।







compiler-errors