【问题标题】:Developing and debugging projects in mutli-repository in Visual Studio在 Visual Studio 的多存储库中开发和调试项目
【发布时间】:2019-06-13 14:46:35
【问题描述】:

这是我遇到的问题的基础(当然,为了这个问题,它被过度简化了): 我在一个存储在单一存储库中的解决方案中有 2 个项目:

  • Project1 - 输出一个库
  • Project2 - 输出可执行文件

当 Project2 引用 Project1 时。

我想移动到多存储库,其中 Project1 将存储在与 Project2 不同的存储库中。 Project1 将输出一个 nuget 包,Project2 将引用它而不是项目本身。

我面临的问题:在当前情况下(单一存储库),当我在开发过程中引入一个功能时 Project2 也需要在 Project1 中进行更改,这不是问题。如果有问题我可以发现 在开发期间。

以一种新的方式(多存储库)我首先需要对 Project1 进行更改,创建 nuget 并将其推送到 nuget 存储,然后更新 Project2 中的引用。如果我在 Project1 中遇到问题,我必须回到 Project1, 修复问题并再次推送,更新 Project2 中的引用等。此外,失去调试的好处 两个项目。

这种方法有解决方案吗?集中我的问题:如果我的开发机器上有两个项目的源代码, 是否有可能以某种方式指示 Visual Studio 使用源代码而不是引用的 Nuget 进行调试?

希望我解释得尽可能正确和清晰......

【问题讨论】:

  • 我不知道它是否能解决你的问题,但可以在另一个解决方案中引用相同的项目。即,两个不同的解决方案可以引用相同的项目。您还可以在新项目中链接另一个项目的源文件。
  • 正如 Olivier 所说,在 Visual Studio 中,您可以通过将现有项目添加到当前解决方案来将项目引用添加到另一个解决方案中的另一个项目。然后您可以利用此功能在当前解决方案中更轻松地调试和打包。另一个好处是,虽然当前解决方案添加了现有项目,但添加的项目曾经存在的解决方案的结构不会被破坏。关于将项目引用添加到其他解决方案中的项目,请参阅this
  • 感谢两位的回答,但您错过了问题的重点。我正在考虑将库项目转换为 nuget 包,但仍需要一种能够在开发过程中对其进行调试的方法。

标签: c# visual-studio nuget nuget-package


【解决方案1】:

如果您有两个不同的项目并且它们都位于不同的存储库中,您可以将库添加为第一个项目的子模块。我假设你正在使用 git。您可以通过以下方式简单地做到这一点:

    git submodule add <link for the other repo>

在 Visual Studio 中,您只需将项目添加到相同的解决方案中,然后从可执行文件中引用库。我不确定这是否对你有用,但我希望它有效。

【讨论】:

  • 谢谢,但最终我希望 project2 以项目 1 的 Nuget 为目标。但这实际上解决了我想到的另一个与 git 相关的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
相关资源
最近更新 更多