It also took me some time to figure this all out
The Debug CE is just a name for a configuration (similar as you have Release or Debug). In the Example plugins they have added an additional configuration called Debug CE to make it easy to switch between “Deverloper’s System CE” (Debug CE) or the “Deverloper’s System” (Debug).
How it is done?
If you look at the Example plugin, you’ll find a file called Directory.Build.props (look for it with your file explorer, it’s not visible in VS). It’s a settings file for your complete solution (something similar as .csproj file but then for your solution iso the project). In this file you will find, at line 33/34, the settings for Debug CE. If you select Debug CE a property DevelopersSystem will be set to “Deverloper’s System CE”. If you select another configuration, this property will be set to “Deverloper’s System”.
If you now look at one of the .csproj files (e.g. PluginDevelopment.csproj), you see next line:
<AdditionalOpenTapPackage Include="$(DevelopersSystem)" />
So depending on the configuration set, the “Deverloper’s System CE” or the “Deverloper’s System” will be used.
How to use it in your own project?
Several options. You could simply add the OpenTap Package in your project configuration file (.csproj) as next:
<AdditionalOpenTapPackage Include="Deverloper's System CE" />
And then for every configuration (Debug, Release) the Deverloper’s System CE will be used.
If you like to have the flexibility to choose (based on the chosen configuration), you could add an additional configuration (with Configuration Manager, just copy the Debug configuration and name it Debug CE (or anything else, it’s just a name)) and do something like next:
<ItemGroup Condition="'$(Configuration)' == 'Debug CE'">
<AdditionalOpenTapPackage Include="Deverloper's System CE" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' != 'Debug CE">
<AdditionalOpenTapPackage Include="Deverloper's System" />
</ItemGroup>
Above can maybe be written better but I guess you get the idea. Depending on the configuration set, the CE or non-CE version will be opened.
Or you could also add a Directory.Build.props file and do it in a similar way as the Examples plugin.
Hope this helps.
PS: if you still end up with the non-CE version it can sometimes help to delete the bin/Debug folder.
PS2: if you get some warnings in the log of the Deverloper’s System CE, don’t mind this. Deverloper’s System CE is some version behind the non-CE.