Nant构建失败 - 但仅在TeamCity中

3

我有一个nant构建文件,从命令行中可以正常工作,但在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-file里面有什么? - Paco
你是否已经确定了这个问题的原因?我遇到了完全相同的问题。 - time4tea
3个回答

9
默认情况下,TeamCity Build Agent服务将运行为本地系统帐户。如果您的测试或构建脚本需要访问本地系统帐户无法访问的内容(例如数据库连接),则有两个选择:
- 更改资源的权限以允许系统帐户访问。 - 更改构建代理服务使用的帐户。
更改服务帐户与任何其他Windows服务相同 - 通过控制面板/管理工具/服务。

3
我遇到了这个问题。你的msbuild任务中是否设置为quiet?如果是,请将其删除,它可能会起作用-对我来说确实如此。
另请参见此报告的错误(不是我的)。

结果证明这也是我的问题,去掉了verbosity:quiet,一切都正常工作了。 - Adam

1

TeamCity代理在不同的用户下运行,而不是您正在使用的用户。如果我没记错的话,在安装代理时可以更改该设置,或者可以更改代理服务运行的用户。

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


有没有办法将现有的构建代理更改为以cmd方式运行? - wayne
类似这样:\buildagent\bin\agent.bat start - bh213

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接