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

时间:2012-03-27 14:18:48

标签: delphi version delphi-2010 dunit

为什么我不能在单元测试项目中设置版本信息?该项目禁用该复选框,但其他项目则不允许。请参见屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:13)

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

默认情况下应该存在,但有时在项目中添加或删除单元时可能会搞砸。当发生这种情况时,它看起来像:

$R *.res} // notice the missing '{'

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

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

答案 1 :(得分:7)

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

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

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