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 (またはScript#のような他の C# to Javascript Compiler )を使用して 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 に答える