Scala on .Net HelloWorld

sca*_*out 6 .net scala

https://github.com/magarciaEPFL/scaladotnet上阅读README,为简单的"Hello World"应用创建一个Windows exe:

package hello.world

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

使用自述文件中的命令构建.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
Run Code Online (Sandbox Code Playgroud)

在使用Windows 7 Pro,64位时,我在尝试运行时收到此错误:

C:\测试\ BIN> HelloWorld.exe的

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'scalalib,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.在Main(String [] args)

Scala .Net编译器目录直接位于路径中,但似乎HelloWorld.exe无法找到并加载该目录中的scalalib.dll.根据下面的注释,将HelloWorld.exe直接复制到C:\ scala.net目录,然后从那里执行,按预期工作.但是,将.exe放在另一个目录中,而将C:\ scala.net目录作为PATH的一部分,则不会.

怎么了?

ros*_*dia 6

.NET Framework不使用Win32来使用%PATH%环境变量来定位程序集.

简短的回答是:如果它不在同一个文件夹中,那么它需要在GAC中,否则将无法找到.

另外,请看这个问题.