3

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

这是我遇到的错误 C:\TeamCity\buildAgent\work\799db5684a98650b\blablabla.sln.metaproj 错误 MSB3202: The project file "C:\TeamCity\buildAgent\work\799db5684a98650b....\Shared\Libraries\mysecretlib‌​rary \mysecretlibrary.csproj" 未找到。

4

1 回答 1

2

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

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

如果这对您不起作用,您的另一个选择是将此库合并到解决方案中。仅当这是使用库的唯一地方时才这样做!我不提倡围绕您的解决方案复制项目,如果它在多个位置使用,那么您需要以兼容的方式提供它,作为 TeamCity 中的工件参考,但是您最好为本地构建提供程序集。

于 2012-11-05T14:54:45.527 回答