所以我下载并安装了Microsoft Accelerator v2以使用ParallelArrays。我在我的项目中引用了它,但是当我尝试在脚本文件中执行模块中的代码时,我得到:
“名称空间'ParallelArrays'未定义
我已按照这篇文章的说明进行操作:
Microsoft Accelerator library with Visual Studio F#
我已将托管版本“Microsoft.Accelerator.dll”的引用添加到我的F#项目中,然后将本机“Accelerator.dll”添加为我的解决方案中的项目,并将其设置为“Copy To Output Directory”始终复制。
仍然在'#load ...'行的脚本文件中收到FSI错误和内联错误,但是解决方案构建正常,模块文件中没有错误。
关于我缺少的任何想法?我确定这是愚蠢的事。
谢谢, 贾斯汀
更新
我尝试了mydogisbox的建议,摆脱了上面的错误,但现在当我在.fsx文件中运行代码时,我得到了这个错误:
--> Referenced 'F:\Work\GitHub\qf-sharp\qf-sharp\bin\Debug\Microsoft.Accelerator.dll' (file may be locked by F# Interactive process)
[Loading F:\Work\GitHub\qf-sharp\qf-sharp\MonteCarloGPU.fs]
error FS0192: internal error: F:\Work\GitHub\qf-sharp\qf-sharp\Accelerator.dll: bad cli header, rva 0
更新2
所以糟糕的标题错误消失了,但现在我得到了这个:
Microsoft.ParallelArrays.AcceleratorException: Failure to create a DirectX 9 device.
at Microsoft.ParallelArrays.ParallelArrays.ThrowNativeAcceleratorException()
at Microsoft.ParallelArrays.DX9Target..ctor()
at <StartupCode$FSI_0002>.$FSI_0002_MonteCarloGPU.main@() in F:\Work\GitHub\qf- sharp\qf-sharp\MonteCarloGPU.fs:line 14
Stopped due to error
我在MSDN上找到了这个帖子,但是那个线程上提出的修复答案几乎与问题无关。
我的Direct X版本是11,我想这就足够了,但是我尝试安装DX9但它告诉我检测到更新的版本因此无法安装。
答案 0 :(得分:2)
有来自fsi引用dll的特殊指令。 #load
指令仅加载.fs文件。您需要使用#r
指令来引用该文件。您可以使用文件的完整路径,也可以使用#I
包含文件的路径。更多细节here。请记住,fsi完全独立于您的项目,因此项目中的所有引用都必须在fsi中重复才能访问相同的类型。