在项目的主体中使用条件句-IDE破坏代码
-
27-10-2019 - |
题
我正在构建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的发生率。