【问题标题】:How to configure TeamCity to build a solution with 2 projects?如何配置 TeamCity 以构建具有 2 个项目的解决方案?
【发布时间】:2012-02-23 04:18:24
【问题描述】:

如何配置 TeamCity 以构建包含 2 个项目的解决方案?

我已配置 TeamCity 来构建我的解决方案,其中有 1 个项目被选为启动项目并且构建良好。

我通过在其 WebUI 中添加一个运行器类型为“Visual Studio (sln)”的新构建步骤来配置它。

我添加了一个新的类库项目,并从第一个项目中添加了对它的引用,它在本地构建良好。

第一个项目的 .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 脚本?

谢谢,

【问题讨论】:

    标签: visual-studio-2010 msbuild build continuous-integration teamcity


    【解决方案1】:

    实际上,问题在于 TeamCity 正在缓存,因为解决方案是从版本控制设置中选中以下复选框:

    代理结账:强制覆盖所有文件

    缓存的原因是我使用“自动在服务器上”的结帐模式,这意味着它将缓存:http://confluence.jetbrains.net/display/TCD65/VCS+Checkout+Mode

    【讨论】:

      【解决方案2】:

      Team City 处理 .sln 文件,因此您应该不会对多个项目有任何问题。 让 Team City 构建 .sln 文件,而不是 csproj。

      如果已经没问题,请检查您的引用,看看它是否指向解决方案中的项目或是否引用程序集文件(例如,如果您更改构建配置可能会导致问题)

      你的参考应该是这样的

      <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
            <Project>{some guid identifying your project}</Project>
            <Name>ClassLibrary1</Name>
          </ProjectReference>
      

      要获得此结果,应通过右键单击解决方案资源管理器上的项目来进行引用,选择添加引用并转到项目部分

      【讨论】:

      • 这不是我看到的;我的意思是它似乎无法处理包含多个项目的解决方案文件。我在同一个解决方案中从第一个项目中引用了第二个项目。引用是正确的,还有什么可能是错误的?
      • 您确定引用的是该项目吗?另一种可能是您忘记将 sln 或 csproj 提交到源代码管理
      • 要验证,您可以清理您的解决方案,选择调试配置并构建。你应该有同样的错误信息
      • 感谢您的评论。我删除并重新添加了项目,我可以在那里看到 ProjectReference。我将配置从 Release 更改为 Debug 并再次尝试,但仍然从 TeamCity 收到相同的错误消息。仍然没有发现可能是什么问题......
      • 我检查了 ProjectReference 行是否在 TFS 中,但是,TeamCity 没有从 TFS 正确导出最新版本! TeamCity 缓存了旧的 csproj 文件,没有从 TFS 获取最新版本!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2014-09-09
      • 2017-09-01
      • 2011-06-07
      相关资源
      最近更新 更多