XNA F#プロジェクトを実行しようとするFileNotFound例外
-
13-09-2019 - |
質問
私は、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-経験をするために共謀。)