【问题标题】:Delphi XE2 host application from output directory输出目录中的 Delphi XE2 主机应用程序
【发布时间】:2011-12-19 20:01:37
【问题描述】:

有没有办法告诉构建 DLL 的 Delphi 项目作为宿主应用程序使用与正在构建的 DLL 的输出目录相同目录中的可执行文件?

类似这样的:

有一件事是,我在 Delphi XE2 中使用选项集,所以在我正在构建的 DLL 的 dproj 中,我什至没有 DCC_ExeOutput 目录,不确定这是否重要。

允许这样做会严重简化我们在尝试从 VSS 迁移到 SVN 时遇到的一些问题。

另外,你怎么称呼 $(thing)'s?

【问题讨论】:

    标签: delphi environment-variables executable delphi-xe2


    【解决方案1】:

    $(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 环境变量之间是有区别的,当它们中的每一个都可以被调用时,这并不明显。
    • 我的心理模型是主机应用程序设置在构建后应用,因此所有构建变量都不再适用。但这只是猜测。使用 toolsapi 的 IDE 插件可能会获得回报,特别是因为我们已经证明 env vars 是扩展的。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多