我有一个在Windows奴隶上运行的Jenkins构建作业。从站已正确设置MSBuild并运行Windows Server 2012R2 Standard x64。
该构建作业正在编译并运行我的项目的Unittests。测试使用的是DUnit和DelphiXE2编译器。构建测试没有问题。但是,当启动测试可执行文件时,会发生Runtime error 216 at 00406E56
。可执行文件不生成输出,并且不会创建测试结果文件。测试可执行文件使用ConsoleRunner
而不是GUI。
当我以本地管理员或受限用户身份运行exe时,它按预期工作。
测试可执行文件通常会生成输出。它为每次测试运行打印一个点。无论如何,我希望exe能够开始运行。
有一个问题here似乎描述了相同的行为。
当以local system
运行可执行文件时,在Windows Server 2012和2012R2上出现此问题(例如,通过PSExec)。
我查看了Dependency Walker的库依赖项,发现exe可以访问所有库。 PATH和其他库依赖关系的搜索路径都至少具有local system
我确定WOW64正在运行。
我不知道DUnit或Delphi XE2是否一般需要设置可见用户界面的权限。这是local system
帐户缺少的一项内容。