gmcs错误生成dll

gmcs error generating dll

我有一个要转换为 dll 的 C# 文件。 Test1.cs 包含以下代码:

using System;

namespace ProgramLibrary
{
    public class Lib
    {
        public Lib()
        {
            Console.WriteLine("Lib Created");
        }
    }
}

在包含 gmcs.exe 和 Test1.cs 的目录中,我 运行 执行以下命令:

gmcs -target:library -out:Test1.dll Test1.cs

这会产生以下错误:

Unhandled Exception: System.ArgumentException: Illegal enum value: 2051.
Parameter name: access
   at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark& stackMark, IEnumerable`1 unsafeAssemblyAttributes)
   at System.AppDomain.DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir)
   at Mono.CSharp.CodeGen.Init(String name, String output, Boolean want_debugging_support, CompilerContext ctx)
   at Mono.CSharp.Driver.Compile()
   at Mono.CSharp.Driver.Main(String[] args)
Signal 79

我正在使用 Windows 7 64。到目前为止,我已经尝试 运行 使用 cmd 和 cygwin 对其进行修改,将代码更改为空,命令行的变体参数例如遗漏 "out:" 等 运行 "gmcs --version" 工作正常。我被难住了。

我明白了。我不得不通过 mono.exe 像这样 运行 程序:

mono.exe ../lib/mono/2.0/gmcs.exe ../lib/mono/2.0/Test1.cs -target:library -out:Test1.dll

感谢您的帮助!