在多个 VS 2017 解决方案中引用项目的工作流

Workflow for Referencing Projects in Multiple VS 2017 Solutions

我正在寻找有关在多个解决方案(包括调试和发布模式)中引用 C# 项目时的最佳做法的信息。 nuget 和符号服务器(我使用 myget,并且非常喜欢它)解决了发布包的问题。

但我对调试时要做什么感到困惑。如果我尝试坚持使用 nuget 方法,我必须在发现和修复问题时将附属包的新调试版本添加到 myget,然后清除 nuget 缓存并重建主项目。这行得通,但很快就会变得乏味。

有没有办法标记 nuget 包,以便将其标记为 "for debug use only"?

我的另一个想法是在 VS 2017 中使用新的 csproj 文件格式的功能,如下所示:

  <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>

第一个块使用 nuget 包,但仅用于发布版本。第二个将主项目指向我本地文件系统中的附属项目。这似乎让我从主项目中逐步完成附属项目。但是要构建主要项目,我必须在解决方案中包含所有附属项目。这没什么大不了的,但它会使解决方案工作区变得混乱。

如果有人有他们使用的其他方法,或对我正在做的事情有反馈(特别是陷阱!),我洗耳恭听。

因为我的所有项目都在我的开发系统的文件系统中可用,所以我意识到我没有必要发布调试版本的包。基本上,我应该只在本地修改所有源代码,只发布发布包。

我能够通过创建单个解决方案文件夹并向其中添加所有必要的附属项目来解决 "clutter" 在 VS 解决方案中引用大量附属项目的问题。

诚然,这可能会使其他任何试图使用我的开源软件的人的生活变得复杂——他们必须克隆所有的附属软件包以及他们感兴趣的任何主要软件包——但这当然是可行。