DNX的ASP.NET 5 MVC 6 System.Management.Automation问题

时间:2016-01-06 16:17:49

标签: c# asp.net .net asp.net-mvc

我是ASP.NET的新手,正在开发一个深入学习ASP.NET的个人项目。

所以要开始,我创建了一个新的ASP Web项目并选择了ASP 5 Empty MVC模板。然后我从Nuget安装了System.Management.Automation包,然后在名为PowerShellCmd.csPowerShellModule.cs的Models文件夹中创建了一些cs文件。

PowerShellCmd.cs只包含get和set属性。请参阅以下代码:

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

PowerShellModule.cs执行自动化任务,我在顶部加载了System.Management.Automation,因此我可以在代码中使用它们。以下是我的代码:

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?

1 个答案:

答案 0 :(得分:2)

.NET Core 5框架(DNX Core)不支持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文件并删除Core框架。之后,您的project.json文件框架将如下所示。

 "frameworks": {
        "dnx451": { }
    },