如何配置TeamCity以构建包含2个项目的解决方案?
我已经配置了TeamCity来构建我的解决方案,该解决方案有一个项目被选为启动项目并且构建良好。
我通过从其WebUI添加一个带有“Visual Studio(sln)”的Runner Type的新Build Step来配置它。
我添加了一个新的类库项目,并在第一个项目中添加了对它的引用,并在本地构建它。
第一个项目的.csproj文件现在包含:
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
<Project>{00E69E26-2576-4B9A-9180-CB1877B1D951}</Project>
<Name>ClassLibrary1</Name>
</ProjectReference>
</ItemGroup>
我检查了代码,teamcity无法构建!
error CS0246: The type or namespace name 'ClassLibrary1' could not be found (are you missing a using directive or an assembly reference?)
TeamCity似乎只构建了启动项目而不是ClassLibrary1,尽管它被引用。
我如何配置它来构建我的解决方案?
这是否可以使用WebUI或我应该写,例如MSBuild脚本?
谢谢,
答案 0 :(得分:3)
实际上,问题是TeamCity正在缓存,因为解决方案是检查版本控制设置中的以下复选框:
代理商结帐:强制覆盖所有文件
缓存的原因是我使用了“自动在服务器上”的Checkout模式,这意味着它将缓存:http://confluence.jetbrains.net/display/TCD65/VCS+Checkout+Mode
答案 1 :(得分:2)
Team City处理.sln文件,因此你不应该对mutliple项目有任何问题。 让Team City构建.sln文件,而不是csproj。
如果已经可以,请检查您的引用,看它是否指向解决方案中的项目,或者是否引用了程序集文件(例如,如果您更改构建配置可能会导致问题)
您的参考应如下所示
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
<Project>{some guid identifying your project}</Project>
<Name>ClassLibrary1</Name>
</ProjectReference>
要获得此结果,应通过右键单击解决方案资源管理器上的项目,选择添加引用并转到项目部分来进行引用