1

F# InteractiveではモジュールにアクセスできますArray.Parallelが、コンパイル時にはアクセスできません。何が間違っている可能性がありますか? (VS 2010)

namespace X  // not sent to interactive
open Microsoft.FSharp.Collections
module M = 
  let square  (a _[]) = Array.map          (fun a ->  a*a ) // OK        
  let squareP (a:_[]) = Array.Parallel.map (fun a ->  a*a ) // Error: "Parallel" not defined

このコードは FSI で正常にコンパイルされますが、プロジェクトの一部が失敗した場合:

------ Erstellen gestartet: Projekt: DELETE TEST, Konfiguration: Debug Any CPU ------ C:\Program Files (x86)\Microsoft F#\v4.0\fsc.exe -o:obj\Debug\DELETE_TEST.dll -g --debug:full --noframework --define:DEBUG --define:TRACE --doc:bin\Debug\DELETE_TEST.XML --optimize- --tailcalls- -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll" -r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll" -r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll --target:library --warn:3 --warnaserror:76 --vserrors --LCID:1031 --utf8output --fullpaths --flaterrors Module1.fs C:\work\Goswin\30_F#\16-135_LAD\DELETE TEST\Module1.fs(7,37): Fehler FS0039: Der Wert, Konstruktor, Namespace oder Typ "Parallel" ist nicht definiert.

4

1 に答える 1

2

.NET 2.0 をターゲットにしています:-r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll"

このParallelモジュールはSystem.Threading.Tasks、.NET 4.0 まで導入されなかった を介して実装されます。したがって、モジュールはFSharp.Core.dll の .NET 2.0 バージョンにはParallel存在しません。Array4.0 に再ターゲットすると、機能します。

FSI は .NET 4 環境で実行されるため、FSI で動作します。

于 2013-08-14T16:57:14.490 に答える