如何在TeamCity的.NET项目中包含解决方案目录之外的依赖项

时间:2012-11-04 18:05:17

标签: .net teamcity

我的解决方案目录外有类库,所以我在* .sln文件中有这样的引用“../SomeDependency.csproj” 在VS中,一切正常,但TeamCity在尝试构建我的解决方案时失败了。我想它会复制所有解决方案目录,因此关系不再存在。

这是我的错误 C:\ TeamCity \ buildAgent \ work \ 799db5684a98650b \ blablabla.sln.metaproj错误MSB3202:项目文件“C:\ TeamCity \ buildAgent \ work \ 799db5684a98650b .... \ Shared \ Libraries \ mysecretlib rary \ mysecretlibrary.csproj”没找到。

1 个答案:

答案 0 :(得分:2)

解决方案之外的类库生成可执行文件或dll,很可能是dll。使用TeamCity时,您应该在项目中引用此dll,而不是外部项目本身。

如果您对外部库在TeamCity Build Agents上构建感到满意,请添加另一个构建配置来构建解决方案并将其作为工件发布,然后您可以添加对项目的引用以将此工件下载到已知的工件中位置并直接引用它。 (对于TeamCity构建,您可以将其设置为构建配置中的工件依赖项,对于本地构建,我建议您研究一下自动提供外部程序集的方法,我没有使用Mercurial)

如果这对您不起作用,您的另一个选择是将此库合并到解决方案中。 只有在这是图书馆使用的唯一地方时才这样做!我不是主张围绕您的解决方案复制项目,如果它在多个地方使用,那么您需要以兼容的方式提供它,作为TeamCity中的工件引用,无论如何最好为本地构建提供程序集。