I am looking for information on best practices when referencing C# projects in multiple solutions, in both debug and release modes. nuget and symbol servers (I use myget, and really like it) solves that for release packages.
But I'm confused about what to do when debugging. If I try to stick with the nuget approach, I have to a new debug version of subsidiary packages to myget as I find & fix problems, and then clear the nuget cache and rebuild the main project. That works, but it quickly gets tedious.
Is there a way to tag a nuget package so that it's marked as "for debug use only"?
Another idea I had was to use the capabilities of the new csproj file format in VS 2017, like this:
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<PackageReference Include="Olbert.JumpForJoy.UI" Version="0.5.0" />
<PackageReference Include="Olbert.JumpForJoy.Wpf.Converters" Version="0.5.0" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<ProjectReference Include="..\..\WPFUtilities\J4JUI\J4JUI.csproj" />
<ProjectReference Include="..\..\WPFUtilities\WpfConverters\WpfConverters.csproj" />
</ItemGroup>
The first block uses the nuget packages, but only for release builds. The second points the main project at the subsidiary projects in my local filesystem. This would seem to let me step through the subsidiary projects from within the main project. But to get the main project to build, I have to include all the subsidiary projects within the solution. That's not a big deal, but it clutters up the solution workspace.
If anyone has other approaches they use, or feedback on what I'm doing (particularly gotchas!), I'm all ears.