我一直在尝试编译一些我用f#编写的库,以便在我为xbox360编写的游戏中工作,除了我不断收到错误说"The module/namespace 'System.Net.WebRequest' from compilation unit 'System' did not contain the namespace, module or type 'WebRequest'.
我用来编译它的命令是
"C:\Program Files (x86)\Microsoft F#\v4.0\fsc.exe" -o:obj\Release\XBox360.dll --standalone --noframework --define:TRACE --optimize+ --tailcalls+ -r:"C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Xbox360\mscorlib.dll" -r:"C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Xbox360\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll" --target:library --warn:3 --warnaserror:76 --fullpaths --flaterrors somefile.fs
Run Code Online (Sandbox Code Playgroud)
有谁知道修复或避免这个问题的方法?
xbox xna程序集是普通.net程序集的缩减版本(它使用客户端框架+ - 几位).
一个主要限制是xbox上的xna只能使用microsoft的LIVE服务器进行通信.即没有网络请求.
您可以通过比较支持的SerializableAttribute页面(支持的成员和构造函数旁边的xna符号)和WebRequest页面来查看此内容.
一切都没有丢失.看来核心F#DLLS要求该类存在于System中,因此您不能只链接到核心库的XNA/xbox版本.
Luckely微软的一些人在没有这个限制的情况下建造了DLL.看这里:
Xbox 360上的XNA + F#不是官方支持的组合.CLR中缺少对尾调用的支持会导致标准F#核心库崩溃.Don Syme和其他人在微软上为Xbox 360提供了一个定制的F#核心库.需要摆弄.fsproj文件(可以使用脚本自动完成).
在该演示文稿中,我找到了以下链接:
包含特别为XNA构建的F#DLL的项目(看起来像Source中的文件夹FSharpCore ):https://bitbucket.org/johdex/xnautils
关于在F#中开发XNA的博客:http://sharp-gamedev.blogspot.co.uk/
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |