在一个Dunit项目和exe版本信息被禁用,我该如何取回它?

Raf*_*cci 8 delphi version dunit delphi-2010

为什么我不能在Dunit Test projet中设置版本信息?该项目的复选框已禁用,但其他项目未禁用.看截图:

在此输入图像描述

Ken*_*ran 13

您可能缺少测试项目源中的{$ R*.res}指令.它必须位于.dpr中,否则您将无法在项目选项中使用此功能.

它应该默认存在,但偶尔会在项目中添加或删除单元时搞砸.发生这种情况时,它看起来像:

$R *.res} // notice the missing '{'
Run Code Online (Sandbox Code Playgroud)

如果发生这种情况并且开发人员不知道他们在看什么,他们可能刚刚删除了违规行.

此外,如果测试项目最初是作为命令行项目开始的,那么它可能没有这个指令.


War*_* P 7

DUnit单元测试项目的构造方式与其他delphi项目不同,这就是为什么你看到默认情况下它没有资源文件,这就是为什么{$R *.RES}在你自己声明声明之前禁用了versioninfo选项卡的原因.

DUnit项目可以使用GUI Test Runner(使用VCL,但通常不应修改,GUI固定不变)或控制台模式测试运行器,使用两种配置之一构建.虽然控制台应用程序可以链接资源文件,因此可能有版本信息,实际上很多控制台应用程序都这样做,但是你看到你看到的是DUnit的测试运行器框架和单元测试项目不是以你习惯的方式建造.

这反过来会混淆IDE,IDE会禁用相关部分.您可能可以再次添加{$ R},这似乎有效,因为您接受了Kenneth的回答,但我只是想添加一些背景信息,可能会帮助遇到此问题的未来人员.