My solution structure looks like this:
The compiler complains that it finds duplicate types (of every public interface/class) in WCL1.winmd b/c that winmd file already exists in WCL4's bin directory.
One problem is that I know absolutely nothing about C++ and the link offered in the Answer to this question provides a C++ workaround that doesn't help (it's literally like reading a different-but-related language -- i.e. reading German when I only know English).
I also found this which provides another workaround but doesn't tell you where to put it. I added the specified ItemGroupDescription element into every .csproj file as well as the application's PropertySheet.props file to no avail.
I have also done the following:
Anyone else got any ideas? It would be greatly appreciated....
UPDATE:
Here's a link to a small solution that reproduces the compile errors. It seems that it comes from the Microsoft.Windows.CppWinRT NuGet package referenced by the C++ Application. That package auto-generates C++ header files from the .winmd files generated by the component projects referenced by the Application.
Well....it's not perfect but this is how I got around the problem...Add the following line to each ProjectReference in each Component .csproj file:
I'm not sure what the intention of this particular Xml element was, but by setting Private=false, the compiler doesn't copy the InterfaceDefinitionComponent.winmd file into the other Components' bin directory which prevents the C++ compiler from seeing duplicate .winmd files and blowing up because it's trying to generate multiple identical C++ header files for the same Type.