运行 TeamCity 上的 OpenTk 依赖 exe 抛出 AccessViolationException

Run OpenTk dependent exe on TeamCity throws AccessViolationException

发生了什么事?

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

Starting: D:\TeamCity9\buildAgent\temp\agentTmp\custom_script3388580896349143851.cmd [] out - in directory: D:\TeamCity9\buildAgent\workb9612e40cf3fd7d\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 和代理(在同一台机器上)作为具有管理员权限的用户。

我试过的

运行 在命令行上以所有可能的方式 创建了一个 scriptcs 脚本来检查用户是否不是管理员,如果不是,它会提升这是失败并出现无效操作异常。正在调查。

尝试关闭防火墙无效 尝试重新安装 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 上运行吗?我需要这个 运行 在构建步骤中的特定顺序

干杯

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