2009-09-01 10 views
6

में एक .NET विधानसभा संदर्भ अनलोड करने के लिए:कैसे की तरह कुछ के साथ एक विधानसभा के लिए एक संदर्भ लोड करने के बाद IronPython

import clr 
clr.AddRferenceToFileAndPath(r'C:\foo.dll') 

मैं कैसे विधानसभा फिर से अनलोड कर सकते हैं?

कोई भी ऐसा क्यों करना चाहेगा? क्योंकि मैं foo.dll का पुन: संकलित कर रहा हूं और इसे पुनः लोड करना चाहता हूं, लेकिन संकलक मुझे एक झगड़ा दे रहा है, क्योंकि आयरनपीथन पहले से ही foo.dll तक पहुंच रहा है।

उत्तर

5

.NET स्वयं केवल एक ही असेंबली को उतारने का समर्थन नहीं करता है। इसके बजाय, आपको पूरे AppDomain को अनलोड करना होगा। मुझे नहीं पता कि कैसे आयरनपीथन AppDomain एस के साथ काम करता है, लेकिन यह चीजों को करने का सामान्य .NET तरीका है। (असेंबली को एक नए AppDomain में लोड करें, इसका उपयोग करें, AppDomain को छोड़ दें, फ़ाइल के नए संस्करण आदि के साथ एक नया AppDomain बनाएं)