استثناء 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 بت، والذي لا يعمل مع DLLS 32 بت DLLS. ومع ذلك، لا يسمح لي VS 2010 بتغيير منصة الحلول. كيف يمكنني حل هذه المشكلة؟
المحلول
لا أعرف ما يكفي من XNA، لكن هل "في GAC"، أو هل تحتاج إلى نسخ DLLS XNA بجانب .exe الخاص بك؟ يبدو أنه ربما يكون لديك Microsoft.xna.framework.dll بجانب .exe الخاص بك قد يحلها.
تعديل
بناء على معلومات 32/64 بت، ربما تغيير يدويا "u003CPlatform> "في ملف .fsproj. (انقر بزر الماوس الأيمن فوق المشروع،" إلغاء تحميل المشروع "، ثم انقر بزر الماوس الأيمن مرة أخرى و" تحرير أي شيء .fsproj "، وكزة XML أن يكون لديك" X86 "(بدلا من" x64 "أو" anycpu ") قيمة النظام الأساسي، حفظ، والنقر بزر الماوس الأيمن و "إعادة التحميل".) (يتآمر الأخطاء F # المختلفة في BETA1 لجعل من النظام الأساسي / SollyConfiguration - تجربة أقل من الأمثل.)