2009-06-12 115 views
1

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

代码:

#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不让我改变解决方案平台。我该如何解决?

+0

@RCIX - 你用F#的努力很酷,但是你知道,这个例子的外观真的让我想起为什么选择合适的工具是非常重要的。 – 2009-06-12 08:16:54

+0

你可能是对的,但我只是想让它陷入混乱的境地,因为我唯一能想到的就是这样一个体面的课程。如果我建立任何东西,它只会是一个小游戏。毕竟,了解某件事的最好方法是尝试将其应用于某件事物,看看有什么不一样,不是吗? – RCIX 2009-06-12 09:15:17

回答

2

我对XNA不够了解,但是它在'GAC'中,还是需要将XNA dll复制到.exe旁边?这听起来像也许有你的.exe旁边的Microsoft.Xna.Framework.dll可以解决它。

EDIT

基于该六十四分之三十二位信息,可能手动更改.fsproj文件中的“<平台>”。 (右键单击项目'Unload Project',然后再次右键单击'编辑Whatever.fsproj',将XML指定为'x86'(而不是'x64'或'AnyCPU')作为Platform值,保存并)(Beta1中的各种F#漏洞使得平台/ SolutionConfiguration体验不尽如人意)

相关问题