在TeamCity上运行OpenTk依赖exe会抛出AccessViolationException

时间:2015-03-21 14:51:21

标签: c# teamcity opentk

发生了什么?

  • TC构建步骤通过命令行(尝试自定义脚本以及带参数的可执行文件)或.Net process runner
  • 我想要运行的是使用OpenTk的应用程序。
  • 当我通过调用它来运行应用程序时,它运行没有问题。
  • 当我从TC运行时,我收到错误:

(删除时间戳以使其更具可读性)

Starting: D:\TeamCity9\buildAgent\temp\agentTmp\custom_script3388580896349143851.cmd [] out - in directory: D:\TeamCity9\buildAgent\work\5b9612e40cf3fd7d\BuildSteam [] err - D:\TeamCity9\buildAgent\temp\agentTmp\custom_script3388580896349143851.cmd [] out - [] out - Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. [] out - at OpenTK.Graphics.OpenGL.GL.CreateProgram() [] out - at Duality.Resources.ShaderProgram.AttachShaders(ContentRef`1 v, ContentRef`1 f, ContentRef`1 g) in d:\TeamCity9\buildAgent\work\df69930dfe788c6f\Duality\Resources\ShaderProgram.cs:line 208 [] out - at Duality.Resources.ShaderProgram..ctor(ContentRef`1 v, ContentRef`1 f) in d:\TeamCity9\buildAgent\work\df69930dfe788c6f\Duality\Resources\ShaderProgram.cs:line 188 [] out - at Duality.Resources.ShaderProgram.InitDefaultContent() in d:\TeamCity9\buildAgent\work\df69930dfe788c6f\Duality\Resources\ShaderProgram.cs:line 60 [2015-03-20 19:30:45,651] out - at Duality.ContentProvider.InitDefaultContent() in d:\TeamCity9\buildAgent\work\df69930dfe788c6f\Duality\ContentProvider.cs:line 52 [] out - at SceneBaker.Program.Main(String[] args)

我正在以具有管理员权限的用户身份运行TC和代理(在同一台计算机上)。

我尝试了什么

在命令行上以所有可能的方式运行 创建了一个脚本集脚本,用于检查用户是否不是管理员,如果不是,则会因为无效操作异常而失败。调查。

尝试关闭防火墙无效 尝试重新安装GC驱动程序无效

编辑:进一步调查显示该异常仅仅是我运行流程的错误,并且我得到了相同的未处理异常:System.AccessViolationException

编辑II:添加一些日志记录后,我可以看到TC确实以某种方式使检测到的图形驱动程序不正确:

Info: OpenGL initialized Info: Vendor: Microsoft Corporation Info: Version: 1.1.0 Info: Renderer: GDI Generic <--- here it should be Intel HD Graphics 4000 Info: Shading language version:

有什么想法可以让这个程序从TC运作?我需要在构建步骤中按特定顺序运行

干杯

1 个答案:

答案 0 :(得分:0)

好的问题是teamcity代理作为服务运行,并且一旦代理从命令行运行,服务就无法创建OpenGl上下文,那么它就可以运行。