gpt4 book ai didi

.net-3.5 - 使用 msbuild 在父文件夹中查找文件

转载 作者:行者123 更新时间:2023-12-03 18:13:14 24 4
gpt4 key购买 nike

在 MsBuild 中可以创建 build.proj.userMicrosoft.Common.Targets 解析的文件构建文件。

我希望有一个类似的系统,可以在文件夹的根目录中有一个 .user 文件,并使 msbuild 从该文件中获取配置设置。

以这些路径为例:

c:\working\build.proj.user
c:\working\solution1\build.proj.user
c:\working\solution1\project1\
c:\working\solution1\project2\
c:\working\solution1\project3\build.proj.user

c:\working\solution2\
c:\working\solution2\project1\
c:\working\solution2\project2\

我想为 solution1/project1 实现文件 c:\working\solution1\build.proj.user已读取并且对于 solution2/project1 文件 c:\working\build.proj.user
目的是允许根据解决方案和/或项目自定义集成测试连接字符串属性。

我看到的当前解决方案是:
  • 进行自定义 msbuild 任务,该任务将查找此文件
  • 构造一个 shell 命令来查找文件。
  • 在父路径的父路径和父路径中进行硬编码查看

  • 我不喜欢这两种解决方案,想知道是否没有更优雅的方式来实现我的目标(使用 msbuild)。

    最佳答案

    MSBuild 4.0 中存在此功能: $([MSBuild]::GetDirectoryNameOfFileAbove(directory, filename)

    示例:在祖先目录中包含一个名为“Common.targets”的文件

    <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Common.targets))\Common.targets" 
    Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Common.targets))' != '' " />

    有关更多详细信息,请参阅此博客文章: MSBuild Property Functions

    关于.net-3.5 - 使用 msbuild 在父文件夹中查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241443/

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