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

时间:2017-06-10 20:33:53

标签: c# visual-studio nuget visual-studio-2017 csproj

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

但我对调试时该怎么做感到困惑。如果我尝试坚持使用nuget方法,我必须使用myget的新调试版本的辅助包,因为我发现&修复问题,然后清除nuget缓存并重建主项目。这很有效,但很快就会变得单调乏味。

有没有办法标记nuget包,以便将其标记为“仅供调试使用”?

我的另一个想法是在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包,但仅用于发布版本。第二个指向我本地文件系统中子项目的主项目。这似乎让我从主项目中逐步完成了附属项目。但是为了建立主要项目,我必须在解决方案中包括所有子项目。这不是什么大问题,但它会破坏解决方案工作区。

如果有人使用其他方法,或者反馈我正在做的事情(特别是陷阱!),我全都听见了。

1 个答案:

答案 0 :(得分:0)

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

我能够解决&#34;杂乱&#34;通过创建单个解决方案文件夹并在其中添加所有必要的子项目,在VS解决方案中引用大量子项目的问题。

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