Mono 类型';应用程序';在未引用的程序集中定义。gtk夏普,版本=2.12

Mono 类型';应用程序';在未引用的程序集中定义。gtk夏普,版本=2.12,mono,ubuntu-16.04,monodevelop,gtk#,gtk2,Mono,Ubuntu 16.04,Monodevelop,Gtk#,Gtk2,我正在使用GTK#2.12版本构建一个应用程序。我为此安装了MonoDevelop。制作了一个示例应用程序。 当我在项目中将设置从GTK#3更改为GTK#2.12时,所有引用都会更新为GTK#2.12 当我编译项目时,编译器会抛出一个错误 /local/mnt/workspace/vkumbhan/work/Program.cs(25,25):错误CS0012:在未引用的程序集中定义了类型“Application”。必须添加对程序集“gio sharp,版本=3.0.0.0,区域性=中性,Pub

我正在使用GTK#2.12版本构建一个应用程序。我为此安装了MonoDevelop。制作了一个示例应用程序。 当我在项目中将设置从GTK#3更改为GTK#2.12时,所有引用都会更新为GTK#2.12

当我编译项目时,编译器会抛出一个错误

/local/mnt/workspace/vkumbhan/work/Program.cs(25,25):错误CS0012:在未引用的程序集中定义了类型“Application”。必须添加对程序集“gio sharp,版本=3.0.0.0,区域性=中性,PublicKeyToken=35e10195dab3c99f”的引用。(CS0012)

当我查看应用程序类的引用时,我发现应用程序引用了gtk sharp 3.0.0.0

用于检查GTK#2.12是否已安装

apt缓存策略libgtk2.0-0 libgtk-3-0

这两个版本都安装在机器上

你能帮我解决这个问题吗

查找命令行:请帮助更新参考2.12.0.0而不是3.0.0.0

/usr/lib/mono/msbuild/15.0/bin/Roslyn/csc.exe/noconfig/nowarn:170117022008/nostdlib+/平台:anycpu32bit首选/errorreport:prompt/warn:4/define:DEBUG/errorendlocation/preferreduilang:en US/highentropyva+/参考:/usr/lib/mono/gac/atk sharp/3.0.0.0\uu 35e10195dab3c99f/atk-sharp.dll/参考:/usr/lib/mono/gac/gdk-sharp/3.0.0.0_uu35e10195dab3c99f/gdk-sharp.dll/reference:/usr/lib/mono/gac/glade-sharp/2.12.0.0_u35e10195dab3c99f/glade-sharp.dll/reference:/usr/lib/mono/gac/gtk-sharp/3.0.0.0.0_u35e10195dab3c99f/gtk-sharp.dll/reference:/usr/mono/4.5-api/mono.Posix/glade/mscr/4.dll/参考:/usr/lib/mono/gac/pango-sharp/3.0.0.0_u35e10195dab3c99f/pango-sharp.dll/reference:/usr/lib/mono/4.5-api/System.Core.dll/reference:/usr/lib/mono/4.5-api/System.dll/debug+/debug:portable/optimize-/out:obj/debug/Sample.exe/subsystemversion:6.00/resource:gtk gui/gui.stetic,gui.stetic/target:winexe/utf8output MainWindow.cs Program.cs Properties/AssemblyInfo.cs gtk gui/generated.cs gtk gui/MainWindow.cs”/tmp/.NETFramework,Version=v4.5.AssemblyAttributes.cs“


谢谢

解决这个问题的最简单方法是在MonoDevelop中创建一个新的Gtk应用程序,默认为Gtk 2.12,因为设计者需要该版本


然后,您可以从未编译的项目复制类文件(*.cs)。

直接编辑项目文件,并将所有与GTK相关的部件参照从3.0.0.0替换为2.12.0.0。
class MainClass
{
    public static void Main(string[] args)
    {
        Application.Init();     //error came this line
        MainWindow win = new MainWindow();
        win.Show();
        Application.Run();     //error came this line
    }
}