Dot-Net
在 MSBuild 中獲取父目錄
在 NAnt 中,我有一個非常簡單的屬性來獲取我的項目的根,它看起來像這樣:
<property name="project.root.folder" value="${directory::get-parent-directory(directory::get-parent-directory(project.local.folder))}" />這將我帶到了我建構所有路徑的項目的根目錄。
在 MSBuild 中,我可以
$(MSBuildProjectDirectory)用來獲取目前目錄,但我想獲取父目錄的完整路徑。NAnt 使用directory::get-parent-directory它很有魅力,我希望在 MSBuild 中有類似的東西可用。我發現了一個以前的類似問題(http://stackoverflow.com/questions/514264/msbuild-find-msbuildprojectdirectory-parent-directory),但我認為肯定有更簡單的東西可用!
自己:)
我假設這是 MSBuild 4.0。你可以這樣做:
<PropertyGroup> <RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder> </PropertyGroup> <Message Text="RootFolder: '$(RootFolder)'" />
你發布的問題有你的答案,它看起來是一個不錯的答案。MSBuild 是圍繞項目而不是解決方案建構的,因此找到可以為您提供解決方案路徑的東西需要進行一些自定義。需要考慮的一個事實是,對於許多項目,解決方案文件並不位於項目樹的根目錄(或 MSBuild 用語中的“圓錐”)。