带林间空地的 Dotnet Core 找不到资源

Dotnet Core with glade cannot find resource

我用 gtk 和 glade 创建了 dotnet 核心项目。

这是我的项目结构。

Program.cs

   class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            // Initialize Gtk.
            Application.Init();

            MainWindow mainWindow = new MainWindow();
            mainWindow.Show();

            Application.Run();
        }
     }

MainWindow.cs

    public class MainWindow : Window
    {

      public MainWindow() : this(new Builder("MainWindow.glade")) { }

      public MainWindow(Builder builder) : base(builder.GetObject("MainWindow").Handle)
      {
        builder.Autoconnect(this);
      }
    }

并且,我已经将资源文件添加到 csproj。

  <ItemGroup>
    <None Remove="MainWindow.glade" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="MainWindow.glade" />
  </ItemGroup>

我试图在 Main() 中调用主窗口,但总是出现此错误。

Unhandled exception. System.ArgumentException: Cannot get resource file 'MainWindow.glade' (Parameter 'resource_name')
   at Gtk.Builder..ctor(Assembly assembly, String resource_name, String translation_domain)
   at Gtk.Builder..ctor(String resource_name)
   at helloOpenTK.MainWindow..ctor() in helloOpenTK/MainWindow.cs:line 12
   at helloOpenTK.Program.Main(String[] args) in helloOpenTK/Program.cs:line 21

能否建议我如何更改文件夹结构以使其正常工作?

提前致谢。

我在尝试使用 gtkapp template 创建一个新项目后找到了解决方案。

我更改了 csproj 中的配置,它可以 运行 没有错误了。

  <ItemGroup>
    <None Remove="**\*.glade" />
    <EmbeddedResource Include="**\*.glade">
      <LogicalName>%(Filename)%(Extension)</LogicalName>
    </EmbeddedResource>
  </ItemGroup>