Подтвердить что ты не робот

GTK # в Visual Studio 2010

Я пробовал весь день, чтобы GTK # работал в Visual Studio 2010 на Windows Server 2008 R2 x64, чтобы я мог начать писать хорошие кросс-платформенные графические приложения, но я несколько новичок в С#, и я с миром неприятностей.

Я установил последнюю версию Mono для Windows, которая включает в себя GTK #. Я также установил профиль Mono 2.10.8 в качестве целевой структуры моего проекта, свободно следуя руководству отсюда: http://erictummers.wordpress.com/2012/01/25/target-mono-from-visual-studio/

Я создал новое приложение Windows Forms и удалил ссылки на материал форм Windows и добавил ссылки на материал GTK #, свободно следуя руководству отсюда: http://jrwren.wrenfam.com/blog/2008/11/01/gtk-in-visual-studio-2008-on-vista-x64/

Я также добавил ссылку на gtk-dotnet в дополнение к тем из этого руководства.

Это мой полный код приложения:

using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.Linq;
using Gtk;

namespace GridToGo
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.Init();
            Window myWin = new Window("My first GTK# Application! ");
            myWin.Resize(200, 200);
            myWin.Destroyed += new EventHandler(myWin_Destroyed);
            Label myLabel = new Label();
            myLabel.Text = "Hello World!!!!";
            myWin.Add(myLabel);
            myWin.ShowAll();
            Application.Run();
        }

        static void myWin_Destroyed(object sender, EventArgs e)
        {
            Application.Quit();
        }
    }
}

Когда я пытаюсь запустить это с любой конфигурацией, я получаю следующее исключение:

System.TypeInitializationException was unhandled
  Message=The type initializer for 'Gtk.Application' threw an exception.
  Source=gtk-sharp
  TypeName=Gtk.Application
  StackTrace:
       at Gtk.Application.Init()
       at GridToGo.Program.Main() in F:\visual-studio\GridToGo\GridToGo\Program.cs:line 13
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.DllNotFoundException
       Message=Unable to load DLL 'glibsharpglue-2': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
       Source=glib-sharp
       TypeName=""
       StackTrace:
            at GLib.Thread.glibsharp_g_thread_supported()
            at GLib.Thread.get_Supported()
            at Gtk.Application..cctor()
       InnerException: 

Я не могу понять, как заставить его найти эту DLL! Я даже пытался копировать 4 копии DLL в почти любую папку в решении со следующими именами: glibsharpglue-2 glibsharpglue-2.dll glibsharpglue-2.o glibsharpglue-2.o.dll! Я даже попробовал установить пакет GTK "все-в-одном" с сайта GTK и добавить папку bin в свой системный путь, а затем скопировать те же 4 библиотеки в эту папку, и вам не повезло.

Любые советы для моей сумасшедшей проблемы? Я чувствую, что мне здесь что-то не хватает. > _ & Л;

4b9b3361

Ответ 1

Я понял это! Моно для Windows было совершенно ненужным. GTK # для .NET - это то, что мне нужно. Для тех, кто в будущем хочет настроить свою среду Windows для разработки кросс-платформы GTK #, выполните следующие шаги:

  • Установите цель проекта Mono с указанием направлений отсюда: http://erictummers.wordpress.com/2012/01/25/target-mono-from-visual-studio/
  • Установите GTK # для .NET с официального сайта загрузки Mono.
  • Установите Glade/GTK + для Windows, проект sourceforge здесь: http://sourceforge.net/projects/gladewin32/
  • Создайте новый проект для проекта С# Mono.
  • Сопоставьте необходимые сборки для вашего проекта, откуда вы установили GTK # для .NET.