【问题标题】:TeamCity path to external reference assemblies外部参考程序集的 TeamCity 路径
【发布时间】:2010-12-06 03:34:04
【问题描述】:

我一直在设置 TeamCity,除了能够编译引用了解决方案路径之外的程序集的 VS2005 解决方案之外,我几乎可以完成所有工作。我的 SVN 存储库结构如下

根 图书馆 项目一 树干 项目 2 树干

项目 1 和项目 2 引用位于库中的第三方程序集。这在 VS2005 IDE 中和在解决方案文件上调用 MSBuild 时工作得很好,因为所有引用的 HintPath 如下所示:

..\..\..\Libraries\ThirdParty.dll

我遇到的问题是,当 TeamCity 从 SVN 为项目 1 或项目 2 结帐时,它会将所有内容放入与 HintPath 给出的相对路径的结构不匹配的内部目录中。

如何通过 TeamCity 配置或以不同方式配置我的解决方案/目录结构来解决这个问题?任何一个都可以满足我的需求。

谢谢!

【问题讨论】:

    标签: reference teamcity


    【解决方案1】:

    如果您为库创建单独的 VCS 根目录,则可以使用 checkout rules 控制文件在目录结构中的放置位置,以使其与本地计算机上的结构相匹配。

    【讨论】:

      【解决方案2】:

      我们设置了一个包含所有第三方 dll 的网络目录。然后我们将目录映射到驱动器。

      这样,dll 不是我们解决方案的一部分,所有项目只需调用 z:\3rdParty\example.dll 来获取程序集。

      我团队中的其他人实际上设置了我们的 teamcity,所以我可能完全错误地认为问题是如何实际解决的,或者我们最初是否遇到过这个问题 :)

      【讨论】:

      • 谢谢戈登。但是,我想将所有内容都保留在存储库树中,因此我认为您的方法不太适合我们。
      【解决方案3】:

      我所做的是将项目的 VCS ROOT 设置为顶级目录(“根”根据您的项目结构)。并分离了由 teamcity 创建的默认项目 vcs root。在此之后,您可以通过在“解决方案文件路径:*”在构建类型“Visual Studio (sln)”中指定您的解决方案来创建自定义构建步骤。现在它可以正确处理库引用。

      这里有一个缺点,因为 vcs 根位于顶层,即使是不相关的签入也可能导致您的项目构建,并且可能不适合耗时的构建。目前还没有解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        相关资源
        最近更新 更多