获取 MSBuildProjectDirectory 的父目录
Get parent directory of MSBuildProjectDirectory
我有项目的解决方案。我在解决方案目录文件夹中也有 msbuild 文件。
在 msbuild 文件中我有下一个代码:
<PropertyGroup Label="Build Directories">
<RootPath>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)'))</RootPath>
</PropertyGroup>
<ItemGroup>
<MSBuildProjectInfrastructure Include="$(RootPath)MyApp.Services.Infrastructure.sln">
<AdditionalProperties>Configuration=$(Configuration);Platform=$(Platform);</AdditionalProperties>
</MSBuildProjectInfrastructure>
</ItemGroup>
效果不好,因为我需要进入父目录才能找到 MyApp.Services.Infrastructure.sln
结构:
SolutionFolder
-- MsBuildsFolder
-- ProjectFile
这是quite similar question,但没有解决我的问题
要获取父文件夹,您可以让 MSBuild 通过内置 属性 函数确定已知文件在该文件夹中的位置 GetDirectoryNameOfFileAbove:
<PropertyGroup>
<RootPath>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), MyApp.Services.Infrastructure.sln))</RootPath>
</PropertyGroup>
我有项目的解决方案。我在解决方案目录文件夹中也有 msbuild 文件。
在 msbuild 文件中我有下一个代码:
<PropertyGroup Label="Build Directories">
<RootPath>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)'))</RootPath>
</PropertyGroup>
<ItemGroup>
<MSBuildProjectInfrastructure Include="$(RootPath)MyApp.Services.Infrastructure.sln">
<AdditionalProperties>Configuration=$(Configuration);Platform=$(Platform);</AdditionalProperties>
</MSBuildProjectInfrastructure>
</ItemGroup>
效果不好,因为我需要进入父目录才能找到 MyApp.Services.Infrastructure.sln
结构:
SolutionFolder
-- MsBuildsFolder
-- ProjectFile
这是quite similar question,但没有解决我的问题
要获取父文件夹,您可以让 MSBuild 通过内置 属性 函数确定已知文件在该文件夹中的位置 GetDirectoryNameOfFileAbove:
<PropertyGroup>
<RootPath>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), MyApp.Services.Infrastructure.sln))</RootPath>
</PropertyGroup>