尝试运行XNA F#项目时出现FileNotFound异常

时间:2009-06-12 05:08:25

标签: f# xna filenotfoundexception

我设法用xna拼凑了F#中的示例游戏的合适实现。但是,当我尝试实例化我的派生游戏类时,代码会抛出一个FileNotFound异常,试图访问Microsoft.Xna.Framework程序集。为什么会这样?

代码:

#light
open System
open Microsoft.Xna.Framework
open Microsoft.Xna.Framework.Audio
open Microsoft.Xna.Framework.Content
open Microsoft.Xna.Framework.Design
open Microsoft.Xna.Framework.GamerServices
open Microsoft.Xna.Framework.Graphics
open Microsoft.Xna.Framework.Input

type SampleGame() as self =
    class
    inherit Game()
    let mutable manager : GraphicsDeviceManager = null
    let mutable spriteBatch : SpriteBatch = null
    do
        manager <- new GraphicsDeviceManager(self)
    override Game.Initialize() = 
        base.Initialize()
    override Game.LoadContent() = 
        spriteBatch <- new SpriteBatch(manager.GraphicsDevice)
        base.LoadContent()
    override Game.Update(gameTime) = 
        base.Update(gameTime)
        if GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed then
            self.Exit()
    override Game.Draw(gameTime) = 
        manager.GraphicsDevice.Clear(Color.CornflowerBlue);
        base.Draw(gameTime)
    end

let game = new SampleGame()
game.Run()

顺便说一下,我添加了适当的参考资料。 编辑:经过一番探索,我发现我的F#项目正在被编译为64位,这对32位XNA dll无效。然而VS 2010并没有让我改变解决方案平台。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我对XNA知之甚少,但它是'在GAC中',还是你需要复制.exe旁边的XNA dll?听起来好像你的.exe旁边的Microsoft.Xna.Framework.dll可以解决它。

修改

根据32/64位信息,也许手动更改“&lt; Platform&gt;”在.fsproj文件中。 (右键单击项目,'卸载项目',然后再次右键单击并编辑'Whatever.fsproj',将XML调用为'x86'(而不是'x64'或'AnyCPU')作为平台值,保存和右键单击项目和“重新加载”。)(Beta1中的各种F#错误导致平台/解决方案配置体验不够理想。)