【问题标题】:Project assembly references between team members团队成员之间的项目装配引用
【发布时间】:2008-12-09 11:40:00
【问题描述】:

我很想知道您在项目引用中使用什么类型的结构?

在我工作的地方,开发人员有一个名为 AssemblyCache (\\MACHINENAME\AssemblyCache) 的共享文件夹,它通过 Windows 2008 AD 中的 GPO 映射到 R:\(与 Developers AD 组相关联)。

我们的共享组件具有构建后事件,可以将它们复制到如下内容:

R:\.Net %VERSION%\Project\%SOMETHING%

有时,如果它对项目或特定内容是通用的,则它后面会跟上“Common”。 .Net 版本文件夹下还有一个共享内容的公共目录。

这是一个跨多个解决方案的大型项目,可以从一个公共位置引用程序集。

构建机器还有一个共享驱动器,其共享名称与开发人员映射到 S: 的共享名称相同。这使他们能够在需要时获得最新的工作版本。

所有这些都是为了让某人可以在一台新 PC 上打开一个项目,而不必将引用复制到不同的位置,并确保 dev a 与 dev b 等在同一个地方引用程序集......

这个解决方案对我们很有效,所以我想知道您有什么解决方案(如果有的话)来确保所有开发人员从同一路径引用程序集?

【问题讨论】:

    标签: .net assemblies assembly-reference-path


    【解决方案1】:
    • 将所有引用程序集存储在源代码管理中。
    • 始终获取代码以使代码与程序集具有相同的相对路径(例如 ../../CommonLibraries)
    • 每个人都提取到本地驱动器

    必须引用网络驱动器会导致各种问题:

    • 后期版本无法分支,现有分支请参考早期版本
    • 离线工作的困难
    • 构建机器等依赖于另一台机器 - 它不是独立构建
    • 性能不是很好

    【讨论】:

    • 我认为如果使用 subst 命令从本地文件夹创建虚拟驱动器号,则可以避免其中一些问题。您能否详细说明问题#1
    • 使用网络文件夹时,还必须使用 caspol afaik 将此文件夹添加到受信任的位置,因此新工作环境的设置比简单地打开和编译解决方案要复杂一些。跨度>
    • @divo 不能将此任务作为预构建步骤的一部分处理吗?
    • 是的,这应该是可能的,但它增加了额外的复杂性,并且您的开发系统上的安全配置与目标系统上的安全配置不同。当然这不是必须的,但也不是那么吸引人……
    • 好的,知道了。我同意这样的程序集应该由源代码控制来维护。但是你可以在 Visual Studio 中设置程序集的相对路径吗?
    【解决方案2】:

    您不需要创建网络共享。我认为您可以使用 windows subst 命令为本地文件夹创建虚拟驱动器号...

    subst R: "C:\.Net %VERSION%\Project\%SOMETHING%"
    

    这里的优点是任意路径可以路由到标准定义良好的程序集路径,因此例如可以将不同的程序集版本重新映射到 Visual Studio 使用的固定参考路径。

    【讨论】:

      【解决方案3】:

      在一个项目中,我们将程序集添加到源代码存储库中。这也不是完美的,但它可以防止意外获得较新版本的引用,这在使用文件共享时很容易发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        • 1970-01-01
        • 2016-06-06
        • 1970-01-01
        • 2013-05-30
        相关资源
        最近更新 更多