Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 VS、Nuget、TFS-管理复杂的内部依赖结构_Visual Studio 2012_Nuget_Dependency Management - Fatal编程技术网

Visual studio 2012 VS、Nuget、TFS-管理复杂的内部依赖结构

Visual studio 2012 VS、Nuget、TFS-管理复杂的内部依赖结构,visual-studio-2012,nuget,dependency-management,Visual Studio 2012,Nuget,Dependency Management,由于我们构建/维护的产品数量,我们有一个相当复杂的dll结构(>100个程序集)。我们正在安装TFS 2012。我们目前使用NuGet来管理对外部DLL的引用 看来,Nuget可能是管理我们内部DLL的一个答案 以下是我们的结构示例: Framework.dll Business.dll 参考:Framework.dll Business.X.dll 参考:Framework.dll 参考:Business.dll Application.X.dll 参考文献:Framework.d

由于我们构建/维护的产品数量,我们有一个相当复杂的dll结构(>100个程序集)。我们正在安装TFS 2012。我们目前使用NuGet来管理对外部DLL的引用

看来,Nuget可能是管理我们内部DLL的一个答案

以下是我们的结构示例:

  • Framework.dll
  • Business.dll
    • 参考:Framework.dll
  • Business.X.dll
    • 参考:Framework.dll
    • 参考:Business.dll
  • Application.X.dll
    • 参考文献:Framework.dll
    • 参考:Business.X.dll
    • 参考文献:Business.dll
为了使用NuGet实现这一点,我为每个程序集创建了一个NuGet规范/包。然后,每个包都包含其从属包

  • Framework.1.0.nupkg
  • Business.1.0.nupkg
    • 取决于:框架
  • Business.X.1.0.nupkg
    • 取决于:框架、业务
  • Application.X.1.0.nupkg
    • 取决于:框架、业务、业务
1) 我创建了frameworkvs项目,构建了它,并将其打包到Framework.1.0.nupkg中 2) 我打开了BusinessVS项目,并通过安装Framework.1.0.nupkg添加了对Framework.dll的引用 3) 然后,我将BusinessVS项目构建并打包为Business.1.0.nupkg 4) 我对每个组件重复了这个过程(仅供参考,我使用NuGetter实现了自动化)

我在协调本地开发人员机器和构建服务器之间的差异方面遇到了困难

以下是我的理解:

  • 由于NuGet的包还原功能,我不需要将最终程序集存储在TFS中
  • 使用NuGet添加引用,而不是引用程序集。例如,在BusinessVS项目中,框架程序集是从NuGetFramework.1.0包中添加的
  • 然而,这使得汇编开发人员很难构建/测试新特性。使用Business和Business.X程序集的开发人员应该如何在本地(在他们自己的计算机上)测试功能,而不删除/读取引用。这是必要的,因为Business.X引用的是打包的业务,而不是本地构建的Business.dll

    我的目标:

  • 使用生成服务器生成版本化的共享程序集
  • 允许使用者应用程序添加对这些程序集的引用
  • 允许共享程序集的开发人员在需要服务器构建之前在本地轻松编译/测试
  • 我认为Nuget在第一和第二阶段效果很好,但我似乎无法完成第三阶段。有更好的方法吗


    感谢您提供的任何信息/提示

    每个程序集单独的NuGet包(DLL)太过分了-我希望您的大多数内部NuGet包都包含一组程序集,这些程序集提供了一个“块”功能,基本上独立于其他程序集组

    所以这不是正确的模式:

    为了使用NuGet实现这一点,我为每个程序集创建了一个NuGet规范/包


    相反,您可能希望为每个解决方案(.sln)创建一个或两个NuGet软件包,前提是您的解决方案被合理地分组。

    您不能使用单元测试来确保组件良好吗?我同意@Betty的观点,看起来您只需要为共享asm开发人员创建一些良好的UT,这些UT可以作为其门控签入的一部分