2

我尝试在 Mono 的默认控制台项目上使用Saltarelle C# 编译器

using System;

namespace SaltarelleConsoleTest
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Console.WriteLine ("Hello World!");
        }
    }
}

但是当我尝试用终端命令编译它时

mono lib/Saltarelle.Compiler/tools/sc.exe -reference:lib/Saltarelle.Runtime/tools/Assemblies/mscorlib.dll Main.cs -outscript:bin/main.js

发生此错误:

Unhandled Exception: System.TypeLoadException: Could not load type 'Saltarelle.Compiler.Program' from assembly 'sc, Version=1.5.0.0, Culture=neutral, PublicKeyToken=a4048e8fcc593f14'.
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Saltarelle.Compiler.Program' from assembly 'sc, Version=1.5.0.0, Culture=neutral, PublicKeyToken=a4048e8fcc593f14'.

我做错了什么?有没有人用 Saltarelle (或任何其他 C# 到 Javascript 编译器如Script#)成功设置 Mono-Develop

4

2 回答 2

1

我试过你的例子,它产生以下内容:

Main.cs(9,13): error CS0103: The name `Console' does not exist in the current context

考虑到 Saltarelle 的System命名空间没有Console类型,这是正确的。我不知道为什么它会给你未处理的异常,你使用的是什么版本?

Saltarelle 是一个不依赖于 Mono 或 Visual Studio 的外部编译器,尽管您可以配置 IDE 以在编译项目时调用它。

于 2012-12-19T13:37:20.390 回答
0

你必须:

  1. 消除 MS System.dll 引用(并使用 System; 所以没有 Console.WriteLine !);
  2. 添加对 saltarelle mscorlib.dll 的引用,也可以添加对 Script.Web.dll 的引用
  3. 指示运行时:

mono --runtime=v4.0.30319 lib/Saltarelle.Compiler/tools/sc.exe -reference:lib/Saltarelle.Runtime/tools/Assemblies/mscorlib.dll Main.cs -outscript:bin/main.js

于 2013-01-08T03:02:43.830 回答