As @Selvin mentioned, this is a known WPF compilation restriction. When generating .g.cs files, the WPF XAML compiler determines the output path based on the file name, and ignores the virtual directory structure defined in the <Link> tag, resulting in files with the same file name being generated to the same directory, resulting in file overwriting or conflicts. Currently there is no official attribute that directly controls the XAML generation path, so the following approach is a common practice:
1: Rename the file:
Modify the file name of the XAML file so that the generated .g.cs file name is different.
2: Avoid using links to include files:
If you want to keep the original file name, consider adding each plug-in project to the solution separately, rather than referring across projects via the <Link> tag. In this way, the generated directory of each project is independent, and there will be no conflicts in files with the same name.