【问题标题】:How to setup Saltarelle C# to JavaScript Compiler in Mono Develop (Ubuntu, Linux)如何在 Mono 开发(Ubuntu,Linux)中将 Saltarelle C# 设置为 JavaScript 编译器
【发布时间】:2012-12-05 08:09:56
【问题描述】:

我尝试在 Mono 的默认控制台项目中使用 Saltarelle C# Compiler

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

【问题讨论】:

    标签: c# javascript linux compiler-construction monodevelop


    【解决方案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 以在编译项目时调用它。

    【讨论】:

      【解决方案2】:

      你必须:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        • 1970-01-01
        • 2022-11-04
        • 2013-11-21
        • 1970-01-01
        相关资源
        最近更新 更多