6

https://github.com/magarciaEPFL/scaladotnetのREADMEに従って、単純な「HelloWorld」アプリ用のWindowsexeを作成します。

package hello.world

object Main {
  def main(args: Array[String]) {
    println("Hello, World!")
  }
}

READMEからのコマンドで.exeをビルドしました:

scalacompiler.exe ^
-d C:\test\bin ^
-target:exe ^
-Ystruct-dispatch:no-cache ^
-Xassem-name HelloWorld.exe ^
-Xassem-extdirs C:\scala.net ^
-Xshow-class hello.world.Main ^
C:\test\src\HelloWorld.scala

Windows 7 Pro、64ビットを使用しているときに、実行しようとすると次のエラーが発生します。

C:\ test \ bin> HelloWorld.exe

未処理の例外:System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした'scalalib、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。Main(String [] args)で

Scala .Netコンパイラディレクトリはパスに直接ありますが、HelloWorld.exeはそのディレクトリにあるscalalib.dllを見つけてロードできないようです。以下のコメントによると、HelloWorld.exeをC:\ scala.netディレクトリに直接コピーし、そこから実行すると、期待どおりに機能します。ただし、.exeを別のディレクトリに配置し、PATHの一部としてC:\scala.netディレクトリを配置することはできません。

なにが問題ですか?

4

1 に答える 1

6

.NET Frameworkは、アセンブリの検索に%PATH%環境変数を使用する際にWin32に準拠していません。

簡単に言うと、同じフォルダーにない場合は、GACにある必要があります。そうしないと、見つかりません。

また、この質問を参照してください。

于 2012-08-01T14:38:36.020 に答える