Исключение FileNotFound при попытке запустить проект XNA F#
-
13-09-2019 - |
Вопрос
Мне удалось собрать подходящую реализацию примера игры на 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-разрядными библиотеками XNA.Однако VS 2010 не позволяет мне изменить платформу решения.Как это исправить?
Решение
Я недостаточно знаю о XNA, но находится ли он «в GAC», или вам нужно скопировать библиотеки DLL XNA рядом с вашим .exe?Похоже, что наличие Microsoft.Xna.Framework.dll рядом с вашим .exe может решить эту проблему.
РЕДАКТИРОВАТЬ
Основываясь на информации о 32/64-битной версии, возможно, вручную измените «<Platform>» в файле .fsproj.(Щелкните правой кнопкой мыши проект, «Выгрузить проект», затем еще раз щелкните правой кнопкой мыши и выберите «Редактировать What.fsproj», укажите XML, чтобы в качестве значения платформы было указано «x86» (а не «x64» или «AnyCPU»), сохраните и щелкните проект правой кнопкой мыши и выберите «Перезагрузить».) (Различные ошибки F # в бета-версии 1 делают работу платформы/конфигурации решения неоптимальной.)