2016-01-06 131 views
1

我是ASP.NET新手,正在致力於個人項目以深入學習ASP.NET。ASP.NET 5 MVC 6 System.Management.Automation問題與DNX

所以要開始,我創建了一個新的ASP Web項目,並選擇了ASP 5 Empty MVC模板。然後,我從Nuget安裝了System.Management.Automation包,然後在Models文件夾中創建了一些名爲PowerShellCmd.csPowerShellModule.cs的cs文件。

PowerShellCmd.cs只包含get和set屬性。請看下面的代碼:

namespace Automation.Models 
{ 
    public class PowerShellCmd 
    { 
     public string CmdLets { get; set; } 
     public string CmdOutput { get; set; } 
    } 
} 

PowerShellModule.cs做自動化任務,我在上面裝​​這樣我就可以在代碼中使用它們。下面是我的代碼:

using System.Management.Automation; 

namespace Automation.Models 
{ 
    public class PowerShellModule 
    { 
     public void ExecuteCode() 
     { 
      PowerShellCmd command = new PowerShellCmd(); 
      var shell = PowerShell.Create(); 

      shell.Commands.AddScript(command.CmdLets); 

      var results = shell.Invoke(); 
     } 

    } 
} 

當我將鼠標懸停在System.Management.Automation,我得到的引用可用於DNX 4.5.1和不適用於DNX 5.0。請看下面的截圖。

enter image description here

當我建立的代碼,我得到以下錯誤:

enter image description here

默認情況下,它是使用DNX 5.0找System.Management.Automation。我該如何改變以使用DNX4.5.1?

+0

看起來你缺少一個參考。嘗試添加對System.Management的引用並重新編譯。 – lumee

+0

@lumee - 參考 - > DNX4.5.1 - > System.Management.Automation下存在參考。 Nuget倉庫中沒有可用的DNX5.0依賴項。僅適用於DNX4.5.1。 – Ray

回答

2

.NET Core 5框架(DNX Core)不支持Package System.Management.Automation。 .NET Core 5是.NET Framework的一個子集。你可以在這裏讀更多關於它的內容。

http://docs.asp.net/en/latest/conceptual-overview/dotnetcore.html

如果你只是想使用完整的.NET框架(DNX 4.5.1),你可以去project.json文件,並刪除了核心框架。之後,你的project.json文件的框架如下所示。

"frameworks": { 
     "dnx451": { } 
    }, 
+0

它的工作!謝謝。 :) – Ray