从“本地系统”帐户运行时为什么单元测试会崩溃?

时间:2015-12-07 16:33:10

标签: jenkins delphi-xe2 windows-server-2012 dunit

观察到的

我有一个在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帐户缺少的一项内容。

0 个答案:

没有答案