का उपयोग करती है मेरे पास एक पावरहेल स्क्रिप्ट है जो एक .NET असेंबली (मेरे मामले में .EXE) लोड कर रही है और एक एन्क्रिप्टेड कनेक्शन स्ट्रिंग खींचने के लिए app.config का उपयोग करने वाली सार्वजनिक विधि को कॉल कर रही है।पावरहेल कॉलिंग .NET असेंबली जो App.config
स्क्रिप्ट पावरहेल ($ pshome) फ़ोल्डर में powerhell.exe.config के रूप में गतिशील रूप से असेंबली के exe.config की प्रतिलिपि बनाता है और मेरे विकास बॉक्स से ठीक से चलाने में सक्षम है। समस्या यह है कि यह एक मानक विंडोज सर्वर 2003 स्थापना से नहीं चला है।
मैंने सत्यापित किया है कि exe.config को पावरहेल निर्देशिका में सही तरीके से कॉपी किया जा रहा है। मैंने SysInternals प्रक्रिया एक्सप्लोरर चलाया है और सत्यापित किया है कि प्रक्रिया कॉन्फ़िगरेशन फ़ाइलों तक पहुंच रही थी (कोई फ़ाइल संदेश नहीं मिली)। मैंने दूरस्थ रूप से powerhell.exe उदाहरण को डीबग किया है और देख सकता है कि असेंबली ठीक लोड हो रही है लेकिन ConfigurationManager.AppSettings [...] मानों तक पहुंच नहीं सकती है (शून्य वापस आती है)।
मैं विचारों से बाहर हूं। मैंने पढ़ा है कि मैं एक अलग ऐप डोमेन का उपयोग करने में सक्षम हो सकता हूं लेकिन मुझे पावरहेल के साथ ऐसा करने का कोई उदाहरण नहीं दिखता है।
मेरे कोड के प्रभाव से कुछ करता है:
$absolute_path = "c:\foo.exe"
$config_path = $absolute_path + ".config"
copy "$config_path" "$pshome\powershell.exe.config" -Force
[Reflection.Assembly]::LoadFrom($absolute_path)
$foo = new-object MyFooAssembly.FooClass
$foo.DoSomething()
Vista में कोड काम करता है, विंडोज सर्वर 2003 कोड काम नहीं करता है।
यदि यह काम करता है तो आप मेरा हीरो बनेंगे। –
ने पुष्टि की कि यह वीएस -2008 में निर्मित एक नोडी असेंबली के साथ काम करता है और एक्सपी पर चल रहा है, डब्ल्यूएस2003 हाथ नहीं है, लेकिन मुझे उम्मीद है कि यह वहां भी काम करेगा। कृपया खुश रहें और खुश होने पर वोट दें :) –
कुछ दिनों से लूप से बाहर हो गया, कल इसे एक शॉट देगा। धन्यवाद! – GabeA