質問

私は、XNAとF#でサンプルゲームの適切な実装を一緒に考え出すことができました。私は私の派生ゲームクラスをインスタンス化しようとすると、しかし、コードがMicrosoft.Xna.Frameworkアセンブリにアクセスしようとする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#プロジェクトは、32ビットのXNAのdllでは動作しない64ビットにコンパイルされていることがわかりました。しかし、VS 2010のdoesntは私がソリューションプラットフォームを変更することができます。私はこの問題を解決する方法を教えてください。

役に立ちましたか?

解決

私は、XNAについて十分に知らないが、それは「GACで」、またはあなたの.exeファイルの隣XNA DLLをコピーする必要がありますか?おそらくあなたの.exeの隣Microsoft.Xna.Framework.dllを持つことは、それを解決することがありますように思えます。

EDIT

64分の32ビット情報に基づいて、おそらく手動.fsprojファイルに「<プラットフォーム>」に変更。 (右のプロジェクトをクリックし、「プロジェクトのアンロード」、その後、再び右クリックし、「編集Whatever.fsproj」、プラットフォーム値として(むしろ)「のx64」または「AnyCPU」より「のx86」を持つようにXMLを突く、保存、および右クリックプロジェクトと「リロード」。)(ベータ1での様々なF#のバグは最適とは言えないプラットフォーム/ SolutionConfiguration-経験をするために共謀。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top