gpt4 book ai didi

.net - msbuild Directory.Build.props 文件的多级合并

转载 作者:行者123 更新时间:2023-12-02 11:42:07 31 4
gpt4 key购买 nike

我有这样的结构:

\
MySolution.sln
Directory.Build.props (1)
\src
Directory.Build.props (2-src)
\Project1
\Project2
\test
Directory.Build.props (2-test)
\Project1Tests
\Project2Tests

我有所有项目的公共(public)属性 (1)、src 项目的公共(public)属性 (2-src) 和测试项目的公共(public)属性 (2-test)。

对于 (2-src) 和 (2-test) 导入 (1),根据 advice given at the repo ,我向其中每个添加了:

<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props'))" />

这不起作用(我收到一个错误,指出导入导致循环依赖。)。所以我尝试了:

<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '../'))" />

出于同样的原因,这也不起作用。但这确实有效:

<Import Project="../Directory.Build.props" />

我更喜欢使用 msbuild 命令(它支持更深层次的目录结构),而不是硬编码值。这可能吗?

最佳答案

您可以使用当前文件的文件夹名称 ($(MSBuildThisFileDirectory)) 来解决此问题:

  <Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)..\'))" />

这是必需的,因为相对路径被解释为相对于项目,因此仅使用 ../ 作为第二个参数将始终是“来自 csproj”文件的“上一个”,无论项目的位置如何该语句所在的文件。

关于.net - msbuild Directory.Build.props 文件的多级合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974279/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com