【问题标题】:TeamCity compilation errorTeamCity 编译错误
【发布时间】:2017-06-04 03:25:31
【问题描述】:

我在使用 Teamcity 时遇到问题。 在成功通过 Visual Studio 中运行我的项目的构建时,在 Teamcity 中运行此“构建”会导致一些难以理解的错误。

这些是我从 TeamCity 得到的错误:

AppealPersonDetails.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
AppealPersonDetails.cs(32, 7): error CS0246: The type or namespace name 'Excel' could not be found (are you missing a using directive or an assembly reference?) 
AppealReportAddAnotherApplication.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
AppealReportDetailsPage.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
FinishProcessPage.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
MainStatusPage.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
MainTestRunner.cs(27, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
MainTestRunner.cs(31, 7): error CS0246: The type or namespace name 'Excel' could not be found (are you missing a using directive or an assembly reference?) 
Queries.cs(13, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
StatusApplicationsPage.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?) 
StatusPage.cs(29, 7): error CS0246: The type or namespace name 'Tlv' could not be found (are you missing a using directive or an assembly reference?)

【问题讨论】:

    标签: c# visual-studio selenium teamcity teamcity-9.0


    【解决方案1】:

    任何可能在您机器上的 GAC 中的第三方依赖项都需要在 GAC 中或可在您的构建服务器上本地定位。

    我会检查包含 TlvExcel 命名空间的程序集的位置,然后从那里开始。如果 Excel 命名空间取决于 Office 互操作程序集,则需要在生成服务器上安装正确版本的 Excel。

    基于 cmets 编辑:

    OP 澄清说他是直接使用对程序集的引用而不是项目引用。当他切换到使用项目引用时,构建顺序正确建立并解决了他的问题。

    【讨论】:

    • 您所说的“包含 Tlv 和 Excel 命名空间的程序集的位置”是什么意思?这两个程序集实际上都是我创建的项目。我所有的项目都上传到 TFS(源代码控制)。首先,它们是在本地创建的,上传到 TFS,然后我确实在 TeamCity 当前运行的 VM 机器上获取了最新信息。
    • 如果它们是项目依赖项,您是否确保构建顺序在您尝试构建的程序集之前正确构建它们?您是将它们引用为项目还是仅引用已编译的程序集?
    • 我将它们引用为已编译的程序集(只需添加 dll 作为参考)。但我认为问题出在某个地方。我只需要找出导致错误的原因。我已经加载了 Tlv 和 Excel 程序集并构建了它们,所以我需要更深入地了解导致它的原因。我会尽快更新。10x
    • 您应该将整个过程作为单个构建运行,而不是使用项目引用而不是引用二进制文件。工件通常不能在 TeamCity afaik 上的构建配置文件之间共享。如果您将它们作为 DLL 引用,您需要确保该位置与您的源代码相关,并且可能将二进制文件签入您的 CVS(不理想),即在构建之前已包含程序集 DLL 的 lib 文件夹运行。
    • 谢谢,你是对的。我的问题是使用 DLL 而不是作为项目参考。 10倍!请将其发布为答案,我将其标记为一个。
    猜你喜欢
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多