Случайный класс 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 загружается не в правильном формате, но я даже не знаю, с чего начать.
это полный код
Я только что попробовал в FSI.exe, и он работает там просто отлично
1 ответ
Я исправил проблему, проверив "оптимизировать код" в свойствах проекта в visual studio. Я получил это исправление от однокурсника.