Nant构建失败 - 但仅限于TeamCity

时间:2009-04-21 09:47:15

标签: .net continuous-integration teamcity

我有一个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无法​​运行构建但我知道它有效吗?

干杯

瓦特://

3 个答案:

答案 0 :(得分:9)

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

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

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

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

答案 1 :(得分:3)

我有这个问题。您的msbuild任务中的详细程度是否设置为安静?如果是这样,删除它,它可能会工作 - 它为我做了。

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

答案 2 :(得分:1)

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

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