Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何使对XML相关源文件的更改生效?_Delphi_Delphi Xe - Fatal编程技术网

Delphi 如何使对XML相关源文件的更改生效?

Delphi 如何使对XML相关源文件的更改生效?,delphi,delphi-xe,Delphi,Delphi Xe,我想对xmldom和XMLDoc文件进行更改。我尝试过,但我不知道如何测试这些更改,因为程序似乎没有运行这些文件中的代码。我尝试使用ShowMessage查看代码是否被访问,但它从未出现。即使我重命名了文件所在的目录,程序仍然可以很好地编译,就好像它在运行时没有主动读取文件,而是将信息存储在其他地方一样 如何更改这些名称空间,然后确保这些更改包含在下一次编译中 更新 我在寻找一个大致的答案。。因为我在很多情况下都遇到过这个问题。。但具体来说(这里的答案是关于更改“AdomCore_4_3”)我希

我想对xmldom和XMLDoc文件进行更改。我尝试过,但我不知道如何测试这些更改,因为程序似乎没有运行这些文件中的代码。我尝试使用ShowMessage查看代码是否被访问,但它从未出现。即使我重命名了文件所在的目录,程序仍然可以很好地编译,就好像它在运行时没有主动读取文件,而是将信息存储在其他地方一样

如何更改这些名称空间,然后确保这些更改包含在下一次编译中

更新


我在寻找一个大致的答案。。因为我在很多情况下都遇到过这个问题。。但具体来说(这里的答案是关于更改“AdomCore_4_3”)我希望能够更改它,并在编译时显示更改

如果您已经从环境中删除了已编译的DCU文件,并且您的更改仍然没有被编译到项目中,那么您可能根本没有使用这些单元,或者启用了运行时包


对于运行时包,从BPL文件而不是DCU访问编译后的代码。不允许分发修改过的BPL文件,因此如果要修改Delphi提供的源代码,需要确保没有将带有XML单元的包链接到项目。您可以在项目的链接器选项中对此进行控制。

只要您不在单元的
接口
部分进行更改,仅在
实现
部分进行更改,那么您就可以在项目选项中禁用运行时包的使用,然后将修改后的源文件直接添加到项目中。编译器将把它们编译成新的.DCU文件,并使用它们而不是默认的.DCU文件。

它们将被编译为*.DCU文件,可能位于
Delphi\xx\lib
目录中的某个地方(更准确地说,没有Delphi XE)。因此,如果我删除了会导致编译新更改的*.DCU文件,那么应该,但我宁愿重命名它们,而不是删除它们。可能会有一些缓存来保存加载的文件(但我不确定)。所以,如果它不起作用,请尝试重新启动IDE。您需要足够详细地描述您的场景,以便我们能够重现它。你写了这些pascal文件吗?嗯,好的,所以我重命名了.dcu,但当我重新启动IDE时它没有重建它。。现在你想试试什么?谢谢,你知道那个包裹的名字吗?另外,我一直在选项中查找,我看到了一个Delphi编译器“链接”,但我没有看到任何指定包的地方。。你能解释一下我怎么到那里的吗?谢谢,我想应该是在软件包部分,而不是链接器部分。找到“使用运行时软件包构建”选项,然后清除复选框或编辑软件包列表以忽略包含要修改的单元的软件包。上次我使用Delphi时,这个列表是一个简单的编辑框,有一个分号分隔的包名列表。感谢Rob的输入,很高兴知道禁止分发修改过的BPL文件。