1

所以我下载并安装了 Microsoft Accelerator v2 来使用 ParallelArrays。我在我的项目中引用了它,但是当我尝试从脚本文件中的模块执行代码时,我得到:

“未定义命名空间‘ParallelArrays’

我已按照这篇文章的说明进行操作:

带有 Visual Studio F# 的 Microsoft Accelerator 库

我在我的 F# 项目中添加了对托管版本“Microsoft.Accelerator.dll”的引用,然后将本机“Accelerator.dll”作为一个项目添加到我的解决方案中,并将其“复制到输出目录”设置为“始终复制”。

在我的脚本文件中的“#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 上找到了这个线程,但是作为对该线程的修复而提出的答案几乎与该问题无关。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/98600646-0345-4f62-a6c5-f03ac9c77179/ms-accelerator?forum=csharpgeneral

我的 Direct X 版本是 11,我想这就足够了,但是我尝试安装 DX9,但是它告诉我检测到更新的版本,因此无法安装。

4

1 回答 1

2

有从 fsi 引用 dll 的特殊指令。该#load指令仅加载 .fs 文件。您需要使用该#r指令来引用该文件。您可以使用文件的完整路径,也可以使用#I包含文件的路径。更多细节在这里。请记住,fsi 完全独立于您的项目,因此项目中的所有引用必须在 fsi 中复制,以便它访问相同的类型。

于 2014-01-30T16:01:32.470 回答