我设法凑齐的合适的实现在F#样品游戏用XNA的。然而,当我尝试实例我的派生类游戏,该代码将引发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位的DLL XNA工作。但是相较于2010年犯规让我改变的解决方案平台。我要如何解决这个问题?

有帮助吗?

解决方案

我不知道有足够的了解XNA,但它在GAC“,或者你需要复制XNA的DLL您的.exe旁边?这听起来像或许有Microsoft.Xna.Framework.dll旁边的.exe文件可能会解决这个问题。

修改

根据所述六十四分之三十二位信息,或许在.fsproj文件手动更改“<平台>”。 (右键单击项目,“卸载项目”,然后再次右击和“编辑Whatever.fsproj”,拨开XML有“86”(而不是“64”或“AnyCPU”)作为平台的价值,保存和右键单击项目和“刷新”。)(在Beta1的各种F#错误合谋,使平台/ SolutionConfiguration体验不到最佳。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top