【问题标题】:Creating a single solution for multiple projects为多个项目创建单一解决方案
【发布时间】:2015-12-31 22:07:26
【问题描述】:

我有 3 个独立的项目:一个 ASP.NET 5 MVC 项目和两个 ASP.NET 5 类库项目,即打包项目。

这 3 个项目都有自己的解决方案,并且相互引用。例如,MVC 项目引用了两个类库项目——通过 NuGet 包。

它们是单独设置的,因为我们希望通过我们的存储库对这些项目进行精细访问。

我可以访问所有三个项目,并希望在一个解决方案中使用它们。设置它们的正确方法是什么?

我假设我需要创建一个空白解决方案并将所有三个项目导入该解决方案。我的问题是,我如何处理他们的推荐信?请记住,类库项目都生成 NuGet 包。

【问题讨论】:

  • 它们都在同一个存储库中吗?您使用的是什么版本控制解决方案?
  • 我们正在使用 VSTS——又名 VSO。它们位于同一个存储库中,我们希望对谁可以访问每个项目进行非常精细的控制。然而,像我这样的人需要访问所有三个项目,所以我试图找到一种简单的方法来处理所有三个项目并能够进行调试——甚至在必要时进行代码更改。
  • 为什么需要访问所有 3 个?对我来说,这听起来像是一个大项目。你说不是,但你没有提供任何其他证据
  • 这是一个大项目,但我们确实希望控制对每个单独项目的访问。我们不希望前端开发人员下载整个应用程序,反之亦然。这是一个安全问题。
  • 然后把项目分开,把它们当成3。真的就这么简单

标签: visual-studio-2015 asp.net-core nuget-package


【解决方案1】:

您有几个选择。这些都不是你目前正在做的。

  1. 将它们全部作为一种解决方案,摆脱旧的解决方案。然后您可以使用“项目引用”
  2. 使用 git 子模块
  3. 为您的类库构建 nuget 包并将其导入您的依赖项目中

【讨论】:

  • 我们确实希望将它们分开,因为我们的想法是将它们分配给不同的团队。所以当 MVC 项目组下载解决方案时,他们应该能够独立工作。当类库更新时,MVC 团队只需更新 NuGet 包。我是第一个可以访问所有 3 个项目的人。我不想做任何会改变这些项目结构的事情。另一方面,我希望能够在一个解决方案中处理它们,以便调试它们。
【解决方案2】:

我假设我需要创建一个空白解决方案并导入所有三个 项目进入该解决方案。我的问题是,我该如何处理他们的 参考资料?

好的,创建一个空白解决方案并在其中导入所有项目。

那么,对于每个项目,您能否不将所有引用放在一个共享位置,以便每次在任何类库中更新包引用时,您的打包解决方案也有更新的引用? (希望我能正确理解您的情况)。

HNY

【讨论】:

    【解决方案3】:

    如果我没有错过任何东西,这应该对你有用

    按照您的建议创建空白的一体化解决方案。

    为什么不在该一体化解决方案中创建一个global.json 文件并将其设置为projects 字段以定位到您的 3 项目文件夹?

    喜欢:

    {
      "projects": [
        "../MVC-Solution/src",
        "../Class-Library-1/src",
        "../Class-Library-2/src"
      ],
      "sdk": {
        "version": "1.0.0-rc1-final"
      }
    }
    

    这样,您的 MVC 项目将使用类库作为本地开发 nuget 包,您无需任何额外工作即可调试它们。 并且这些项目仍将保持独立。

    当您将该信息添加到 global.json 文件中时,dnu 会在这些文件夹中查找 project.json 项目。无论他们在哪里或谁使用它们......

    我假设我需要创建一个空白解决方案并将所有三个项目导入该解决方案。我的问题是,我该如何处理他们的推荐信?

    -

    它们已经是独立的项目。我的问题是,当我在 MVC 项目中调试调用某个类库项目中的函数的代码时,我希望能够单步执行代码。如有必要,对代码进行更改并能够将其签入。当它们完全分开时,我无法单步执行代码。

    【讨论】:

      猜你喜欢
      • 2022-07-03
      • 1970-01-01
      • 2010-10-18
      • 2019-06-15
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      相关资源
      最近更新 更多