VSTS 2010 SGEN: त्रुटि: फ़ाइल या असेंबली लोड नहीं कर सका (HRESULT से अपवाद: 0x80131515)


106

मैं VS2010 के साथ एक अजीब मुद्दे का सामना कर रहा हूं। हम अपने एपीआई डीएल के निर्माण के लिए टीएफएस का उपयोग करते हैं और हम अपनी परियोजनाओं में उन्हें एक मैप्ड नेटवर्क ड्राइव के लिए संदर्भित करते थे जो पूरी तरह से विश्वसनीय थी। हम कम से कम दो साल से इस तरह काम कर रहे हैं और सब कुछ पूरी तरह से काम कर रहा है।

आज, मैंने एक वेबऐप को vs2010 में बदल दिया और जब मैं इसे रिलीज़ में संकलित करता हूं, तो यह मुझे दे रहा है:

SGEN: त्रुटि: फ़ाइल या असेंबली फ़ाइल लोड नहीं कर सका: /// L: \ Api \ रिलीज़ API_20100521.1 \ रिलीज़ \ CS.API.Exception.dll 'या इसकी एक निर्भरता। ऑपरेशन समर्थित नहीं है। (HRESULT से अपवाद: 0x80131515)

अजीब बात यह है कि जब यह डिबग प्रोफ़ाइल के तहत काम कर रहा है ...

मैंने जोड़ने की कोशिश की

<runtime>
   <loadFromRemoteSources enabled="true" />
</runtime>

app.config और अभी भी कोई किस्मत नहीं (देखें http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a03398a60df0 और http://msdn.microsoft.com/ en-us / पुस्तकालय / dd409252 (VS.100) .aspx )

मुझे पूरा यकीन है कि यह मुद्दा विजुअल स्टूडियो या एमएसबिल्ट का है, क्योंकि हमारा कोड एक नेटवर्क शेयर से तब नहीं चलेगा, जब वह प्रोडक्ट में होगा क्योंकि सभी संदर्भित dll बिन फ़ोल्डर में कॉपी किए गए हैं।

अगर किसी के पास कोई हल है (या केवल एक खोज पथ के लिए एक विचार है) कृपया मुझे बताएं!

संपादित करें: यह पता चलता है कि यह डिबग मोड में काम कर रहा था क्योंकि धारावाहिक संयोजन की पीढ़ी को बंद कर दिया गया था। जैसा कि शीर्षक कहता है, यह वास्तव में एक SGEN समस्या है क्योंकि यह उपयोगिता है जो कहती है कि पथ पर भरोसा नहीं है ...

जवाबों:


213

मैं Windows Explorer में असेंबली DLL, राइट क्लिक, प्रॉपर्टीज़ चुनने और फिर "अनब्लॉक" बटन दबाकर इस त्रुटि को ठीक करने में सक्षम था। DLL में एक स्ट्रीम है जो इसे एक बाहरी फ़ाइल के रूप में चिह्नित कर रहा है - और अनब्लॉक पर क्लिक करके आप उस पदनाम को हटा देते हैं।


काम किया ... केवल डेवलपर इस मुद्दे पर है .. टीएफएस से सही है ... अजीब
स्पेगेटीकोबॉय

इसका कारण यह था कि मेरे स्रोत कोड एक शेयर पर बैठे थे। कोड को स्थानीय डिस्क पर ले जाया गया - सब ठीक हो गया। (.NET4 एसजीएन शेयर मुद्दों पर अनुमति)।
thedrs

31
भगवान आपका भला करे। गंभीरता से।
FAtBalloon

कृपया ध्यान दें, अधिकांश निगम स्थानीय व्यवस्थापक पहुँच की अनुमति नहीं देते हैं, या डेवलपर्स सहित नियमित उपयोगकर्ताओं के लिए "अनब्लॉक" बटन तक पहुंच को अक्षम कर देते हैं।
केविनरपे

2
मुझे एक ज़िप फ़ाइल से कॉपी किए गए DLL के साथ यह समस्या थी।
79IT

59

मेरे पास TFS बिल्ड सर्वर पर समान / समान मुद्दा था, जहां एक बिल्ड नेटवर्क शेयर से dll का संदर्भ दे रहा था।

समस्या यह है कि सीएलआर v4 सुरक्षा नीति मॉडल पिछले संस्करणों के बाद से बदल गया है और पहले की तरह सैंडबॉक्सिंग असेंबली नहीं है।

अपनी समस्या को ठीक करने के लिए बस sgen.exe का स्थान ढूंढें और उसी सामग्री के साथ उसी फ़ोल्डर में sgen.exe.config बनाएं:

<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>

sgen.exe आमतौर पर है

"C:\Program Files\Microsoft SDKs\Windows\v[current version]\bin\NETFX 4.0 Tools"

आप इस ब्लॉगपोस्ट में .NET 4.0 में CAS नीतियों के आसपास कुछ परिवर्तनों के बारे में पढ़ सकते हैं: लिंक


1
हाँ, मैं इस समाधान में आया था, लेकिन मेरे लिए बेकार था, मैंने कुछ भी नहीं बदला ... हमने हल किया जैसा कि सीरियल असेंबलियों ने बंद कर दिया
डेवलपर आईटी

7
अन्य जानकारी के लिए, SGEN आमतौर पर "C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 टूल्स" पर है
स्टीव कूपर

डेवलपर आईटी: जब से मुझे उनकी आवश्यकता थी, मेरे मामले में सीरियल असेंबलियों की पीढ़ी को बंद नहीं किया जा सका। लेकिन क्रमांकन विधानसभाओं के कारण के रूप में अच्छी तरह से एक समाधान हो सकता है।
मार्टिन हाइडलहल

1
ध्यान दें कि यदि यह 64 बिट मशीन है, तो आपको इसके नीचे ... \ Bin \ NETFX 4.0 टूल \ x64 \
विवेक

1
C: VS2015 के लिए यह पता लगाने में \ Program Files (x86) \ माइक्रोसॉफ्ट SDKs \ Windows \ v10.0A \ बिन \ NETFX 4.6 उपकरण
Farshid

23

एक ही समस्या थी और विन्यास परिवर्तन काम नहीं किया। केवल जब मैंने प्रोजेक्ट संपत्तियों में काम करने के लिए उत्पन्न सीरियल असेंबली को सेट किया तो यह काम किया।


मेरे लिए भी काम किया। ओपी के लिए यह सही उत्तर है, प्रश्न में उनकी संपादित टिप्पणी के आधार पर भी।
अकस्मात

मेरे लिए काम किया। टी.के.एस।
विनीसियस गॉनक्लेव्स

1
प्रोजेक्ट गुण -> बिल्ड -> उत्पन्न सीरियल असेंबली ऑटो था, इसे बंद करने के बाद, संकलन एक आकर्षण की तरह काम करना शुरू कर दिया। +1 और थैंक्स।
होन्ज़ा पी।

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

केवल एक परियोजना में यह समस्या थी - इसे ऑटो से बंद कर दिया - यह परियोजना एक SOAP WS का संदर्भ दे रही थी।
सुभा


3

मेरे पास यह एक ही समस्या थी और इसे C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 टूल के तहत sgen.exe.config को जोड़कर ठीक किया।

इस सरल विन्यास के साथ जैसा कि दूसरों ने कहा है

<?xml version ="1.0"?>
<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>

2

TFS बिल्ड सेवा का 64 बिट संस्करण चलाने वालों में से, मुझे निम्न पथ में कॉन्फिग फ़ाइल बनाना होगा:

 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64

और फ़ाइल सामग्री:

<?xml version ="1.0"?>
<configuration>
<runtime>
    <loadFromRemoteSources enabled="true" />
</runtime>
</configuration>

1

मेरे पास एक ही मुद्दा था, जीएसी में विधानसभा को लोड किया और काम किया


बात यह है कि हम उन लोगों को GAC में नहीं चाहते हैं। हमने सीरियल असेंबली के रूप में हल किया
डेवलपर आईटी

1

एप्लिकेशन के नीचे स्निपेट जोड़ना। मेरे फाइल में काम किया। मैं VS2010 सर्विस पैक 1 के साथ Windows XP चला रहा हूं।

<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>

0

यदि आप विंडोज 7 चला रहे हैं तो एक FYI के रूप में sgen.exe फाइल यहां पर मिल सकती है:

C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 उपकरण

मुझे एक sgen.exe.config बनाना था और उसे वहां रखना था और फिर यह समस्या चली गई।


0

न तो unblockहै और न ही configमेरे लिए काम किया। मेरे लिए क्या तरकीब थी यह टिप थीcaspol । मैं भागा

 %windir%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -m -ag 1.2 -url file://UncPathName/UncSubPath/* FullTrust

और मैं जाने के लिए तैयार था, यहां तक ​​कि विज़ुअलस्टडियो पुनरारंभ भी आवश्यक नहीं था।


0

मुझे एक समान समस्या मिली और मैं आखिरकार समाधान के गुण फ़ोल्डर में लाइसेंस.क्लिक फ़ाइल को हटाकर इसके साथ समाप्त हो गया।


0

मेरे जैसे मामले में, अनब्लॉक एक समाधान नहीं था, जैसा कि अनब्लॉक मेरी dll फ़ाइल गुणों पर प्रकट नहीं होता है। देखा जा रहा है और मेरी समाधान फ़ाइल को बंद करने और स्थानीय सी का उपयोग करके फिर से खोलने का काम समाप्त हो गया है: नेटवर्क फाइल को प्रोजेक्ट करने के लिए नेटवर्क UNC पथ के बजाय कॉपी करें। इस मार्ग पर जाने के बाद प्रकाशित करने में सक्षम था।


0

मेरे मामले में dll का गुच्छा अवरुद्ध कर दिया गया था।

फ़ोल्डर में सभी फाइलों को अनब्लॉक करने के लिए मैंने निम्नलिखित कमांड के साथ पावर शेल का उपयोग किया

dir -Path [directory path] -Recurse | Unblock-File
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.