2016-10-07 8 views
0

Я создал программу C# и GTK # с Mono в Linux, и теперь я пытаюсь запустить ее в Windows 10. Чтобы узнать, могу ли я вообще что-нибудь запустить, я Пробовал пример HelloGTK из документации MonoDevelop: http://www.monodevelop.com/documentation/stetic-gui-designer/Запуск приложений GTK # на Windows 10

На машине с Windows 10 я сначала попытался установить Mono (32-разрядный) и запустить приложение из командной строки Mono как mono HelloGTK.exe, но он немедленно прекращается без сообщения об ошибке. Затем я попытался удалить Mono и установить Gtk #, но с тем же результатом: приложение завершается молча при запуске из командной строки Windows.

  1. Это может быть несоответствие версии .NET или отсутствующие компоненты .NET? .NET включен (версии 3.5 и 4.6) в панели управления, но не все подпункты проверяются. Программа построена на .NET версии 4.5. Я построил консольное приложение (с Mono on Linux), и он запускается на компьютере под управлением Windows без установленного Mono. Достаточно ли этого для проверки статуса .NET или может быть проблема?

  2. Может ли приложение не найти библиотеки GTK #? Есть ли способ проверить установку GTK #?

  3. Может быть, несоответствие версии GTK #? Приложение построено на GTK # 2.12, и я установил 2.12.38 на машину Windows, поэтому я нахожу это маловероятным.

Любые подсказки о том, как устранить эту проблему, были бы очень признательны!

+0

Для запуска программы GTK # вам потребуется время выполнения. На самом деле, система выполняет поиск кэш-памяти Blobal для библиотек, которые будут привязаны во время выполнения. Вы можете установить среду выполнения напрямую (вставляя GTK # runtime и GTK + runtime в GAC .NET) или использовать Mono complete, в котором используется отдельный компонент GAC, так что вам нужно явно использовать моно. Попробуйте [1] для получения дополнительной информации. [1] http://www.mono-project.com/docs/gui/gtksharp/installer-for-net-framework/ – auX

ответ

0

забыть все, что:

родной докер теперь доступен на окнах, так:

  1. dockerize приложение и сделать ваш образ
  2. копию в коробке окна
  3. работать в докер

plus некоторые детали, которые, вероятно, необходимо заполнить. Но докер работает и сделает вашу жизнь бесконечно легче, если речь идет о межплатформенных вопросах.

0

Проблема оказалась в коде, созданном дизайнером Stetic GUI, который входит в MonoDevelop:

protected virtual void Build() 
{ 
    ... 
    this.Title = global::Mono.Unix.Catalog.GetString ("MainWindow"); 

С выше линии закомментированного приложение работает на Windows 10 с установленным GTK #.

+0

Привет, это немного странно - вам не нужно будет комментировать это для запуска в Windows. Теоретически, если вы не используете что-то конкретное для Mono или используете, например, ILRepack, должен работать .exe.NET с библиотеками Windows GTK #, установленными в GAC. У меня были аналогичные проблемы, запущенные на установленной на заводе Windows 8, и в конце концов переустановили Windows 8 перед установкой GTK #, которая решила проблему для меня. Никогда не было проблем с Windows 10. Проблема может быть связана с зависимостями, а не с GTK # или вашим приложением. – muszeo