【问题标题】:Nant build fails - but only in TeamCityNant 构建失败 - 但仅限于 TeamCity
【发布时间】:2010-04-14 13:05:57
【问题描述】:

我设置了一个 nant 构建文件,它在 cmd 行中可以正常工作,但在 TeamCity 中却不行。

我检查了我执行的命令是从 TC 所在的同一目录运行的,并检查了所有引用,但它仍然失败并出现以下错误:

[build] Compile the project using Debug configuration...
[10:30:05]: [build] msbuild (1m:18s)
[10:30:06]: [msbuild] Starting MSBuild...
[10:30:07]: [msbuild] Starting 'C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe (@"G:\TeamCity\buildAgent\work\9de21b975852dd95\src\Irm.Web.App\Irm.Web.App.sln.teamcity.msbuild.tcargs")' in 'G:\TeamCity\buildAgent\work\9de21b975852dd95'
[10:30:09]: [msbuild] MSBUILD : error MSB1025: An internal failure occurred while running MSBuild.
[10:31:18]: [msbuild] Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
[10:31:18]: [msbuild] at Microsoft.Build.CommandLine.MSBuildApp.BuildProject(String projectFile, String[] targets, String toolsVersion, BuildPropertyGroup propertyBag, ILogger[] loggers, LoggerVerbosity verbosity, DistributedLoggerRecord[] distributedLoggerRecords, Boolean needToValidateProject, String schemaFile, Int32 cpuCount, Boolean enableNodeReuse)
[10:31:18]: [msbuild] at Microsoft.Build.CommandLine.MSBuildApp.Execute(String commandLine)
[10:31:18]: [msbuild] at Microsoft.Build.CommandLine.MSBuildApp.Main()
[10:31:24]: G:\TeamCity\buildAgent\work\9de21b975852dd95\Irm-deploy.build(22,10): External Program Failed: msbuild (return code was -1073741819)

有谁知道为什么 TC 无法运行构建但我知道它可以工作?

干杯

w://

【问题讨论】:

  • nant 文件中有什么?
  • 您是否确定了造成这种情况的原因。有完全相同的问题...

标签: .net continuous-integration teamcity


【解决方案1】:

默认情况下,TeamCity Build Agent 服务作为本地系统帐户运行。如果您的测试或构建脚本需要该帐户无法访问的内容(在我的情况下是数据库连接),您有两种选择:

  • 更改资源的权限以允许系统帐户访问

  • 更改构建代理服务使用的帐户

更改服务帐户与更改任何其他 Windows 服务相同 - 通过控制面板/管理工具/服务

【讨论】:

    【解决方案2】:

    我遇到了这个问题。您的msbuild 任务中的详细程度是否设置为quiet?如果是这样,请删除它,它可能会起作用 - 它对我有用。

    另见this reported bug(不是我的)。

    【讨论】:

    • 原来这也是我的问题,删除了冗长:安静,一切正常。
    【解决方案3】:

    团队城市代理在与您使用的用户不同的用户下运行。如果我没记错的话,您可以在安装代理时更改它,也可以更改运行代理服务的用户。

    此外,您可以选择不将代理作为服务运行,而是将其作为普通命令行程序运行。

    【讨论】:

    • 是否可以将现有的构建代理更改为以 cmd 运行?
    • 类似这样的东西:\buildagent\bin\agent.bat start
    猜你喜欢
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多