3

观察到的

我有一个在 Windows 从站上运行的 Jenkins 构建作业。从站已正确设置 MSBuild,并且正在运行 Windows Server 2012R2 Standard x64。

该构建作业正在为我的项目编译和运行单元测试。测试使用 DUnit 和 DelphiXE2 编译器。构建测试没有问题。但是当测试可执行文件启动时,Runtime error 216 at 00406E56就会发生。可执行文件不产生输出,并且不创建测试结果文件。测试可执行文件使用ConsoleRunner而不是 GUI。

当我以本地管理员或受限用户身份运行 exe 时,它​​按预期工作。

预期的

测试可执行文件通常会产生输出。它为每次测试运行打印一个点。无论如何,我希望exe开始运行。

自己的研究

  • 这里有一个问题似乎描述了相同的行为。

  • local system当运行可执行文件(例如通过PSExec )时,Windows Server 2012 和 2012R2 上会出现此问题。

  • 我用Dependency Walker查看了库依赖项,发现所有的库都可以被 exe 访问。PATH 和其他库依赖项的搜索路径都至少具有读取访问权限local system

  • 我确保 WOW64 正常工作。

嫌疑人

我不知道 DUnit 或 Delphi XE2 通常是否需要设置可见用户界面的权限。这是该local system帐户缺乏的东西之一。

4

0 回答 0