Случайный класс F# выдает исключение BadImageFormatException при вызове.NextDouble()

Я сделал небольшое приложение из книги о F#, но когда я вызываю метод rand.NextDouble(), он выдает исключение BadImageFormatException, которое на первый взгляд выглядит так, как будто оно связано с изображениями, поэтому я понятия не имею, что я должен делать здесь.

Я использую VS сообщество 2013 с использованием Visual F# 2013. У меня есть 64-битные Windows 7

Я знаю, что это следующий двойной метод, проблема в том, чтобы попытаться с отдельным

let create_field num_asteroids =
    let lerp (x: float<'u>) (y:float<'u>) (a:float) =
        x*a+y*(1.0-a)

    let rand = Random()

    [for i =1 to num_asteroids do
        let m =
            (lerp earth_mass moon_mass (rand.NextDouble()))*
            1.0e-4
        let x = lerp 0.0<m> field_size (rand.NextDouble())
        let y = lerp 0.0<m> field_size (rand.NextDouble())
        let vx = max_velocity*(rand.NextDouble()*2.0-1.0)*0.1
        let vy = max_velocity*(rand.NextDouble()*2.0-1.0)*0.1
        yield
            {
            Position = { X = x; Y = y }
            Velocity = { X = vx; Y = vy }
            Mass = m
            Name = "a"
            }
    ]

Это код ошибки:

System.BadImageFormatException было необработанным. Сообщение: в Asteroid_Field_1.exe произошло необработанное исключение типа 'System.BadImageFormatException'. Дополнительная информация: Была предпринята попытка загрузить программу с неверным форматом. (Исключение из HRESULT: 0x8007000B)

MSDN сообщает, что это может быть связано с тем, что файл DLL загружается не в правильном формате, но я даже не знаю, с чего начать.

http://pastebin.com/7LhCHr3c

это полный код

Я только что попробовал в FSI.exe, и он работает там просто отлично

1 ответ

Я исправил проблему, проверив "оптимизировать код" в свойствах проекта в visual studio. Я получил это исправление от однокурсника.

Другие вопросы по тегам