【问题标题】:FileNotFound exception when attempting to run an XNA F# project尝试运行 XNA F# 项目时出现 FileNotFound 异常
【发布时间】:2009-11-13 20:43:05
【问题描述】:

我设法用 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 不允许我更改解决方案平台。我该如何解决这个问题?

【问题讨论】:

  • @RCIX - 你在 F# 上的努力很酷,但你知道,这个示例的外观确实让我想起了为什么为工作选择正确的工具如此重要。
  • 你可能是对的,但我只是让它乱七八糟,因为它唯一的想法是我能想到的将是一个像样的项目来学习课程。如果我建立任何东西,那将只是一个小游戏。毕竟,了解某事的最佳方式是尝试将其应用到某事上,然后看看有什么坚持,不是吗?
  • 我完全同意这一点。我目前正在阅读 F#,当看到您的示例时,我感到震惊的是,使用命令式语言可以更好地完成某些事情,并且看到 F# 在涉及计算和数据操作等功能性内容时真的很出色。再说一次,.Net 的伟大之处在于您可以根据您正在创建的内容混合和匹配语言

标签: f# xna filenotfoundexception


【解决方案1】:

我对 XNA 了解不够,但它是“在 GAC 中”,还是您需要将 XNA dll 复制到您的 .exe 旁边?听起来好像在你的 .exe 旁边放 Microsoft.Xna.Framework.dll 可能会解决这个问题。

编辑

根据 32/64 位信息,可能需要手动更改 .fsproj 文件中的“”。 (右键单击项目,“卸载项目”,然后再次右键单击并“编辑Whatever.fsproj”,将 XML 插入以将“x86”(而不是“x64”或“AnyCPU”)作为平台值,保存,然后右键单击项目并“重新加载”。)(Beta1 中的各种 F# 错误共同导致平台/解决方案配置体验不太理想。)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 2021-10-24
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
相关资源
最近更新 更多