Delphi XE2从输出目录中托管应用程序

5
有没有一种方法告诉一个构建DLL的Delphi项目,使用与DLL输出目录相同的可执行文件作为主机应用程序?
类似于这样: DLL host app Delphi - this does not work 其中一个问题是,我正在使用Delphi XE2的选项集,在我正在构建的DLL的dproj中,我甚至没有DCC_ExeOutput目录,不确定是否重要。
允许这样做将严重简化我们在从VSS迁移到SVN时遇到的一些问题。
此外,您如何称呼$(thing)?
1个回答

4

$(name)是环境变量。我尝试将主机应用程序设置为.\$(Platform)\$(Config)\Test.exe,但收到了此错误消息:

Could not find program, '.\%Platform%\%Config%\Test.exe'.

注意到$(...)已被转换为环境变量语法。
我还尝试了$(systemdrive)\Test.exe,但收到了以下错误信息:
Could not find program, 'C:\Test.exe'.

显然,环境变量将被替换为它们的值,如果它们存在。我认为可以合理地得出结论,用于启动主机应用程序的环境显然不定义特殊的Delphi特定环境变量。
因此,我认为你不能像这样使用间接寻址来设置主机应用程序。
另一方面,环境变量被替换,因此您可以使用它来使事情更加容易。换句话说,您可以定义自己的一些环境变量。我不知道这是否对您有所帮助,因为我不知道您问题的具体细节。

嗯,这一切似乎都是真的,但你会认为我可以在 MSBuild 运行的预链接构建事件中设置它们。这样我就可以做类似 set outdir = ..\debug\final 的事情。但似乎不起作用。我可以告诉 Delphi 环境变量和 Windows 环境变量之间存在差异,只是不明显每个变量何时被调用。 - Peter Turner
1
我的心理模型是主机应用程序的设置在构建之后应用,因此所有的构建变量都不再适用。但这只是猜测。使用toolsapi的IDE插件可能会带来好处,特别是因为我们已经证明了环境变量被扩展。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接