如何在 optset 中拥有相对路径?
我们有一些相关项目,这些项目位于一个公共文件夹中,但在不同的嵌套级别中 - 例如:
c:\ myProject \ mainapp \ mainapp \ mainapp.dproj
c:\ myproject \ servicetools \ tool1 \ tool1 \ tool1 .dproj
。
我们正在使用选项集在这些项目中配置共同设置。
问题是在Optset中的路径:我真的希望它们是相对的,例如:
<DCC_UnitSearchPath>.\libs\SomeLib\src;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
但是,这与不同的嵌套级别不起作用,因为路径已扩展到导入.dproj
's位置,而不是针对包含的Optset。
我如何获得“相对性”?也许有一个宏,例如$(thisoptsetFile)
或类似的宏?
We have a few related projects which reside in a common folder but at different nesting levels - like:
C:\MyProject\MainApp\MainApp.dproj
C:\MyProject\ServiceTools\Tool1\Tool1.dproj
.
We're using option sets to configure common settings across these projects.
The problem is with paths in the optset: I really want them to be relative, like:
<DCC_UnitSearchPath>.\libs\SomeLib\src;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
However this doesn't work with different nesting levels, because the paths are expanded regarding to the importing .dproj
's location, not regarding to the containing optset.
How can I get the "relativeness"? Maybe there is a macro like $(LocationOfThisOptsetFile)
or similar?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
相对路径正常工作,我们从版本Delphi 7到Delphi 11开始使用它们。特定于使用它们:首先是它总是从“ dproj”文件的位置开始计算,其次 - 如果您尝试尝试,则存在一些问题将“ BPL”安装到IDE中,找不到它。
如果我们谈论“ Optset-file”中的特定变量 - 对此一无所知。
我们建议您使用自己的“环境变量”(可以是系统,用户或直接在IDE中创建的)对工作文件夹(或使用针对项目指定的一些变量)。
例子:
可变名称:Mainproject值:C:\ Work \ MainProject
BPL软件包位于:
C:\ Work \ MainProject \ Kaskad \ source \ externalpackages \ dac \ delphi27
它的选项:
在这种情况下,您可以在不同的PC上通过GIT使用相同的代码库同步,即使在放置在另一个位置的其他PC项目上,只需在环境变量中使用此新位置即可。
如果您需要添加到searchPath中,请说文件夹“ c:\ work \ altsqldeveloper \ sources”,对于同一bpl,您可以使用:
或
两种解决方案都可以用于BPL,但是如果您打算在“ OptSet-File”中使用它,则可以使用它。 - 选择第一个。它将是任何项目的同一文件夹。
PS如果您打算使用MSBUILD进行命令行汇编,则必须在蝙蝠文件中或“ C:\ Program Files(x86)\ Embarcadero \ Studio \ Studio \ 21.0 \ bin \ rsvars.bats.bat”中设置自定义“环境变量”
。如果您确实需要一个具有OTPSet-File位置的变量,则可以使用自定义功能编写自己的解析器/管理器。 dproj文件,这只是一个简单的XML。
Relative paths work fine, we use them starting from version Delphi 7 till Delphi 11. Specific to using them: first one is that it always starts calculating from the location of “dproj” file, second – there is some problem, if you try to install “BPL” into an IDE, it can't find it.
If we talk about a specific variable in “optset-file” – didn’t know about any of it.
We recommend you use your own “environment variable” (it can be system, user, or created directly in IDE) to your work folder(or use a few variables specified to your project).
Example:
Variable name: MainProject Value: C:\Work\MainProject
BPL package located in:
C:\Work\MainProject\Kaskad\Source\ExternalPackages\dac\Delphi27
Options for it:
In this case you can use the same codebase synchronized via GIT on different PC, even if on other PC projects placed in another location, just use this new location in the environment variable.
If you need add into searchPath, let’s say folder “C:\Work\AltSQLDeveloper\Sources”, for same BPL you can use:
OR
Both solutions will work fine for BPL, but if you plan to use it in “optset-file” – choose the first one. It will be the same folder to any project.
P.S. If you plan to use MSBuild for CommandLine compilation – you must set your custom “environment variable” in your BAT-file or in “c:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat”
P.P.S. If you really need a variable with otpset-file location, you can write your own parser/manager with custom functionality. Dproj-file it’s just a simple xml.