【问题标题】:Workflow for Referencing Projects in Multiple VS 2017 Solutions在多个 VS 2017 解决方案中引用项目的工作流程
【发布时间】:2017-11-12 15:39:33
【问题描述】:

我正在寻找有关在多个解决方案(包括调试和发布模式)中引用 C# 项目时的最佳实践的信息。 nuget 和符号服务器(我使用 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 包,但仅用于发布版本。第二个将主要项目指向我本地文件系统中的子项目。这似乎让我可以从主项目中逐步完成子项目。但是要构建主要项目,我必须在解决方案中包含所有子项目。这没什么大不了的,但它会使解决方案工作区变得混乱。

如果有人有其他他们使用的方法,或对我正在做的事情的反馈(尤其是陷阱!),我会全力以赴。

【问题讨论】:

  • 您想在调试和发布模式下使用 nuget 处理 C# 项目吗? AFAIK,NuGet 包通常只存储一组特定目标框架的程序集。它并不是真正设计用于发布调试和发布版本。这似乎不是更好的方法,除了你已经尝试过,必须要一个新的调试版本的附属包到 myget,虽然它让你觉得乏味。详细信息可以参考:stackoverflow.com/questions/13488280/…

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多