我正在构建Windows服务应用程序,该应用程序具有将其编译为基本Windows应用程序的配置。exe的主要项目文件包括条件,这些条件确定该项目是作为服务应用程序编译还是作为Windows窗体应用程序编译。

问题是,当我做一些改变项目代码的事情时,代码被破坏和破坏了。例如,一条说Application.Initialize;的行变成了AppliApplication.Initialize;,而包含{$R *.RES}的行被切成S},并且我的大多数条件被删除了。

我想知道是否有办法克服这个问题,是否有任何技巧,还是我只需要咧着嘴笑?

这是我希望保留的以下文件... 通用标签

有帮助吗?

解决方案

正如David所说,您对IDE感到困惑,认为dpr是它自己的私有后院。最简单的解决方案是将所有内容放在一个单独的单元中,然后从dpr的uses子句中删除条件。无论如何,FastMM将在您的服务版本以及测试应用程序中派上用场,而vcl.forms和vcl.svcMgr之间的区别可以在该单独的单元中进行。

dpr将减少为: 通用标签

您的主应用程序单元将从dpr中获取其余代码: 通用标签

其他提示

简单的答案是仅创建一个不同的项目并将其用作独立版本。这就是我对服务所做的事情,这意味着您可以使用其他条件来适应每种模式。

是的,IDE会这样做并且总是会做。没有已知的方式可以阻止这种行为。您只需要把它吸起来。

我有类似的条件,并且处理它们的方法是使用修订控制系统在提交时帮助我撤消IDE所做的更改。因此,每当我检入.dpr文件时,我都会检查差异并还原伪造的差异。

我还尝试通过编辑.dpr文件而不是让IDE来从项目中添加和删除单元。这往往会降低伪造mod的发生率。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top