编译Alea GPU教程时出错:在Visual Studio 2015社区更新2中使用FSharp.Core版本4.4.0.0在.Net 4.5运行时编译https://github.com/quantalea/AleaGPUTutorial.
Fody:发生了未处理的异常:异常: 无法加载文件或程序集'FSharp.Core,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.
堆栈跟踪:
at Alea.CUDA.AOTCompileLogger..ctor(List`1 logs, Int32 warningCount, Int32 errorCount)
at Alea.CUDA.AOTCompileLogger..ctor()
at Alea.CUDA.AOTCompiler..ctor()
at Alea.CUDA.Fody.ModuleWeaver.Execute()
at lambda_method(Closure , Object )
at InnerWeaver.ExecuteWeavers() in c:\Code\Fody\FodyIsolated\InnerWeaver.cs:line 164
at InnerWeaver.Execute() in c:\Code\Fody\FodyIsolated\InnerWeaver.cs:line 82
Source:
Alea.CUDA
TargetSite:
Void .ctor(System.Collections.Generic.List`1[Alea.CUDA.AOTCompileLogEntry], Int32, Int32)
Run Code Online (Sandbox Code Playgroud)
它发生在Tutorial.Cs和Tutorial.Fs项目中,无论我如何bindingRedirect在所有可能的.config文件中设置选项.看起来这些重定向被Fody引用加载机制忽略了.
但是,即使将教程解决方案设置为FSharp.Core 4.3.1.0也不允许我编译它.错误是一样的.
你对如何解决它有任何想法吗?
我已经成功构建了几次,但它们完全是随机的,我无法弄清楚导致错误消失的原因.
也许它是多次重新启动Visual Studio作为管理员的组合.
此外,我也FSharp.Core.dll从不同来源尝试了随机结果:
./packages/Alea.CUDA/tools/ 在AleaGPUTutorial中写道:
在Visual Studio中构建之前,建议您在打开解决方案之前还原软件包.这是由于Fody与F#项目一起使用的已知问题.您可以在安装手册中找到有关此问题的更多详细信息(尤其是备注部分)).
从手册:
Alea GPU使用F#实现,因此它使用F#运行时.如果您使用来自C#或VB的Alea GPU,则还需要3.1版或更高版本的
FSharp.Core.dll程序集.如果使用Visual Studio,则可以通过导航到找到该程序集.Add Reference -> Assemblies -> Extensions -> FSharp.Core 4.3.1.0.或者,您可以将FSharp.Core NuGet包添加到项目中.
我完成了所写的内容,但只获得了随机构建成功.
当你拥有的是4.3.1时,如何使用FSharp.Core 4.3.0
我曾经默默地假设当你安装F#3.1时,它会自动从FSharp.Core 4.3.0.0添加重定向到4.3.1.0,或者确保FSharp.Core 4.3.0.0也可用.显然,我已经习惯了语义版本控制,这绝对不是用于F#的版本控制方案