2016-08-25 18 views
12

से PowerShell चल रहा है .net-core से PowerShell स्क्रिप्ट चलाने का कोई तरीका है?.NET कोर

मैं एक नई .net कोर 'वेबसाइट \ api' में पावरशेल स्क्रिप्ट चलाने की कोशिश कर रहा हूं। .net पर PowerShell चलाने के लिए मैं क्या कह सकता हूं, हमें

सिस्टम जोड़ने की आवश्यकता है। प्रबंधन। ऑटोमेशन नामस्थान।

.NET कोर के लिए यह संभव नहीं है (या मुझे इसे जोड़ने का उचित तरीका नहीं मिला है)। कुछ NuGet पैकेज हैं जो इस डीएलएल को प्रोजेक्ट में जोड़ने का लक्ष्य रखते हैं लेकिन वे नेट नेट के साथ संगत नहीं हैं। क्या नेट नेट पर ऐसा करने का कोई तरीका है? ये कुछ लिंक मैं कोशिश की है रहे हैं, लेकिन उनमें से कोई भी .net कोर विशिष्ट हैं:

http://www.powershellmagazine.com/2014/03/18/writing-a-powershell-module-in-c-part-1-the-basics/

Referencing system.management.automation.dll in Visual Studio

https://www.nuget.org/packages/System.Management.Automation/

+0

शिकारी, टेक फ्रिस्ट लिंक 2014 –

+0

पहला लिंक है कोड के माध्यम से खोल चलाने के लिए आवश्यक कोड (और नामस्थान) दिखाने के लिए पहला लिंक है .... – JanivZ

+0

नेट-कोर के बारे में कैसे? –

उत्तर

6

The official answer कि स्वयं अपने एप्लिकेशन के PowerShell कोर चल रहा है वर्तमान में है समर्थित नहीं। शायद सबसे बड़ी समस्या यह है कि नेट कोर AppDomain.GetAssemblies() गुम है, जिसे नेट कोर 1.2 में तय किया जा सकता है।

+0

AppDomain.GetAssemblies दिया() है नेट कोर 2.0 में उपलब्ध है। मुझे नहीं पता कि क्या यहां सवाल पूछा गया है। https://docs.microsoft.com/en-gb/dotnet/api/system.appdomain.getassemblies?view=netcore-2.0 –

3

ऐसा लगता है कि यह अच्छी तरह से नेट कोर 2.0 और PowerShell 6 बीटा 3 (हालांकि यह बीटा 1 और 2 भी लेकिन रूप में आसानी से नहीं में समर्थित किया गया), यहाँ Host PowerShell documentation in the GitHub repo

के लिए एक लिंक है और के रूप में समर्थित है वे इसे नेट कोर 2.0 और PowerShell कोर v6.0.0-beta.3 और बाद में साथ चल रहे दिखा एक अच्छा नमूना आवेदन दे:

https://github.com/PowerShell/PowerShell/tree/master/docs/host-powershell/sample-dotnet2.0-powershell.beta.3/MyApp

आदेश मेरी NuGet पैकेज सूची मैंने किया था में सही संकुल प्राप्त करने के लिए पावरहेल-कोर को नी के रूप में जोड़ने की आवश्यकता है डब्ल्यू NuGet भंडार स्थान था जो:

https://powershell.myget.org/F/powershell-core/api/v3/index.json

मैं तो NuGet पैकेज इंस्टॉल कर सकते हैं:

install-package microsoft.powershell.sdk -version 6.0.0-rc 
install-package microsoft.powershell.commands.diagnostics -version 6.0.0-rc 
install-package microsoft.wsman.management -version 6.0.0-rc 

इन सभी निर्भरता के लिए आवश्यक थे के तीन और उसके बाद मैं निम्नलिखित सरल निष्पादित कर सकता है मेरे एएसपीनेट कोर एमवीसी वेब अनुप्रयोग में पावरशेल कमांड:

public class PowerShellHelper 
{ 
    public void Execute(string command) 
    { 
     using (var ps = PowerShell.Create()) 
     { 
      var results = ps.AddScript(command).Invoke(); 
      foreach (var result in results) 
      { 
       Debug.Write(result.ToString()); 
      } 
     } 
    } 
} 
+1

हाँ, समर्थन को जोड़ा गया! जानकारी जोड़ने के लिए धन्यवाद! – JanivZ

+2

कोई समस्या नहीं, मुझे सही दिशा में इंगित करने के लिए svick के लिए धन्यवाद और आप सवाल पूछने के लिए। –