c# - netcore - GTK#en Visual Studio 2010
gui dotnet core (1)
¡Me lo imaginé! Mono para Windows fue completamente innecesario. GTK # for .NET es lo que necesitaba. Para cualquier persona en el futuro que desee configurar su entorno Windows para el desarrollo de plataforma cruzada GTK, aquí están los pasos que seguí:
- Instale un objetivo de proyecto Mono con instrucciones desde aquí: http://erictummers.wordpress.com/2012/01/25/target-mono-from-visual-studio/
- Instale GTK # para .NET desde el sitio oficial de descarga de Mono.
- Instalar Glade / GTK + para Windows, proyecto sourceforge aquí: http://sourceforge.net/projects/gladewin32/
- Crea un nuevo proyecto de C # dirigido a Mono.
- Haga referencia a los ensamblajes necesarios para su proyecto desde donde instaló GTK # para .NET.
He estado intentando todo el día obtener GTK # trabajando en Visual Studio 2010 en Windows Server 2008 R2 x64 para poder comenzar a escribir buenas aplicaciones de GUI multiplataforma, pero soy algo nuevo en C # y estoy teniendo un mundo de problemas
Instalé el último Mono para Windows que incluye GTK #. También instalé un perfil de Mono 2.10.8 para ser el marco de trabajo objetivo de mi proyecto siguiendo la guía desde aquí: http://erictummers.wordpress.com/2012/01/25/target-mono-from-visual-studio/
Creé una nueva aplicación de Windows Forms y eliminé las referencias a los formularios de Windows y agregué referencias para cosas de GTK #, siguiendo vagamente la guía desde aquí: http://jrwren.wrenfam.com/blog/2008/11/01/gtk- in-visual-studio-2008-en-vista-x64 /
También agregué una referencia a gtk-dotnet además de los de esa guía.
Este es el código completo de mi aplicación:
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();
}
}
}
Cuando intento ejecutar esto con cualquier configuración, obtengo la siguiente excepción:
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:
No puedo entender cómo conseguirlo para encontrar ese dll. Incluso intenté copiar 4 copias de la DLL en casi todas las carpetas de la solución con los siguientes nombres: glibsharpglue-2
glibsharpglue-2.dll
glibsharpglue-2.o
glibsharpglue-2.o.dll
! También intenté instalar el paquete GTK all-in-one desde el sitio GTK y agregué su carpeta bin a mi ruta del sistema, y luego copié los mismos 4 dlls en esa carpeta, todo sin suerte.
Algún consejo para mi problema loco? Siento que me estoy perdiendo algo grande aquí. > _ <