2009-10-12 64 views
4

我一直在设置TeamCity,并且几乎所有的工作都能够编译引用了解决方案路径之外的程序集的VS2005解决方案。我有我们的SVN存储库结构如下TeamCity路径到外部引用程序集

 
    Root 
     Libraries 
     Project 1 
      Trunk 
     Project 2 
      Trunk 

项目1和项目2引用位于库中的第三方程序集。这个工作从VS2005 IDE内就好了自HintPath所有引用的解决方案文件调用的MSBuild当这个样子:

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

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

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

谢谢!

回答

0

我们用我们所有的第三方dll建立了一个网络目录。然后我们将目录映射到一个驱动器。

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

有人在我的球队还有实际设置我们的TeamCity的,所以我可能是完全错误的有关问题实际是如何固定的,或者我们甚至有这个问题初始:)

+0

谢谢戈登。但是,我想将所有内容都保存在存储库树中,所以我认为您的方法对我们来说不太合适。 – 2009-10-14 15:50:14

4

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

0

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

这里有一个缺点,即由于vcs根目录位于顶层,甚至不相关的检查插件可能导致您的项目生成并且可能不适合耗时的生成。目前还没有解决方法。