У меня есть рабочий стол Windows 7 x64 с vs2010 и установка виртуальной коробки Linux с моно и monodevelop.Я компилирую следующую программу с vs2010 и запускаю ее на виртуальной машине linux, и она завершается с ошибкой, которая, по-видимому, не поддается обнаружению FileNotFoundException.Если я скомпилирую его на виртуальной машине и запустлю в Windows, он прекрасно работает.
Проблема, похоже, заключается в том, что неуловимое исключение выбрасывается mono перед Main (), когда невозможно загрузить dll.Есть ли способ реструктурировать мою программу или заставить моно так, чтобы я мог поймать это исключение?
Я пытаюсь написать одну программу, которая имеет интерфейс в WPF или GTK в соответствии с тем, что доступно во время выполнения.
using System;
#if __MonoCS__
using Gtk;
#else
using System.Windows;
#endif
using System.IO;
using System.Runtime.CompilerServices;
using System.Collections.Generic;
namespace Test {
public static class Program {
[STAThread]
public static void Main() {
try {
Main2();
} catch (FileNotFoundException e) {
Console.WriteLine("Caught FileNotFoundException");
Console.WriteLine("FileName = {0}", e.FileName);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public static void Main2() {
#if __MonoCS__
Application.Init();
#else
Window w = new Window();
#endif
}
}
}