PowerShell中的C#:不支持语言模式

时间:2015-07-14 19:38:14

标签: c# powershell add-type

我正在尝试使用一个非常简单的脚本在PowerShell中工作,它会不断弹出以下错误:

Add-Type : Cannot add type. Definition of new types is not supported in this language mode.
At C:\Users\jdkin_000.ATHENA\cs_init.ps1:16 char:1
+ Add-Type -TypeDefinition $Source -Language CSharp

这是脚本:

$Source = @"
using System;

namespace cs1
{
    public class Program
    {
        public static void Main()
        {
            Console.WriteLine("Hello world!");
        }
    }
}
"@

Add-Type -TypeDefinition $Source -Language CSharp

有关如何让此脚本在返回错误的确切设备上工作的任何建议。脚本和类似的脚本可以在其他机器上运行,但是当脚本包含C#时,这台机器并不想公平。

2 个答案:

答案 0 :(得分:1)

尝试运行:

$ExecutionContext.SessionState.LanguageMode

以下是解释LanguageMode的链接。我假设您处于限制定义新类型的能力的模式。

https://technet.microsoft.com/en-us/library/dn433292.aspx

编辑:基于Windows RT 8.1操作系统,( Windows RT Powershell (PermissionDenied) on New-Object) 它似乎无法完成。

答案 1 :(得分:0)

当系统驱动器上没有可用空间时,Powershell也可能会切换到ConstrainedLanguage模式。