如何在 MSBuild 中递归调用任务?

2024-03-09

例如。我想每次调用这些脚本传递差异参数:

<ItemGroup> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Tables\*.sql" /> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Functions\*.sql" /> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Views\*.sql" /> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\ForeignKeys\*.sql" /> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\StoredProcedures\*.sql" /> 
        <SqlFiles Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Data\*.sql" /> 
</ItemGroup> 

你可以通过使用MSBuild任务 with 特性.

<!-- Dont itemize sql files now, if you want to differenciate the task operations -->
<ItemGroup> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Tables" /> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Functions" /> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Views" /> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\ForeignKeys" /> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\StoredProcedures" /> 
  <SqlDirs Include="$(SourceServicesDbSqlRootDir)CreateScripts\$(SourceServiceName)\Data" /> 
</ItemGroup>


<Target Name="MainTask">
  <MSBuild Projects="$(MSBuildProjectFile)" 
           Properties="SqlDir=%(SqlDirs.Fullpath)"
           Targets="RecursivelyCalledTask">
    <Output ItemName="ProjSources" TaskParameter="TargetOutputs"/>
  </MSBuild>
</Target>

<Target Name="RecursivelyCalledTask">
  <!-- We create here the SqlFiles items based on SqlDir-->
  <CreateItem Include="$(SqlDir)\*.sql">
    <Output ItemName="SqlFiles" TaskParameter="Include"/>
  </CreateItem>

  <Message Text="SqlFiles -> @(SqlFiles)"/>
</Target>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MSBuild 中递归调用任务? 的相关文章

随机推荐

  • 如何在同一页面切换多个react组件

    我有一个使用 Material ui 列表构建的用户仪表板 对于每个 listItem 我都有一个组件 我想要的是 当我单击列表元素时 有一个专门用于切换组件的部分 我在实现这个时遇到困难 这是我的代码 我不知道该放在哪里onClick处理
  • SecurityException:权限拒绝:通过显式意图启动 Activity 时

    我正在读关于在活动中声明权限 https developer android com guide components activities intro activities dp 根据文档 您可以使用清单的标签来控制哪些应用程序可以启动特
  • 在 QVBoxLayout 中查找选中的 QRadioButton

    我使用下面的代码动态创建一组单选按钮 self wPaymantType qgbSomeSelectionGroup QtGui QGroupBox vbox QtGui QVBoxLayout for row in listOfChoic
  • 使用VB.Net获取图像宽度和高度

    在 VB net 中 我需要读取一个充满图像的文件夹并获取它们 文件名 像素高度和像素宽度 并将它们的值分配给各个变量 thanks Mike 尝试这个 Imports System IO Imports System Drawing Mo
  • cmdline-tools:无法确定 SDK 根目录

    C Android sdk bin gt sdkmanager错误 无法确定 SDK 根目录 错误 要么明确指定它 sdk root 或将此包移动到预期位置
  • 从两个向量(名称、值)创建命名列表

    有没有办法在两个向量上使用 mapply 来构造命名列表 第一个向量的类型为character并包含用于列表的名称 而第二个包含值 到目前为止 我唯一的解决方案是 gt dummyList list gt addToList lt func
  • 流星没有开始

    我在启动 Meteor 示例时遇到问题 这就是我打字时得到的meteor在应用程序文件夹中 parties Unexpected mongo exit code 100 Restarting Unexpected mongo exit co
  • 使用 Phonegap 和 AngularJS 的 HTML5 模式

    我正在尝试使 AngularJS html5 模式 true 与 Phonegap 一起使用 我之前做了很多搜索来发布这个 我尝试了不同的组合 配置 在元中添加 标签 也尝试使用 和 添加 html 后缀到路由端点 在 config 块内添
  • 如何选择每月最高消费客户

    我有一个列出日期 customerID orderID 和 orderCost 的视图 如何选择每月最高消费客户 该数据仅涵盖2015年的六个月时间 我能够获得每个客户每月花费的总和 但不能获得最大支出客户 SELECT EXTRACT Y
  • 独立的 getter/setter 方法,还是组合的?

    在处理一个项目时 我一直在进行一些更改并浏览现有框架 API 文档以获取见解 在仔细阅读 Kohana 文档时 我注意到任何给定类的 getter setter 通常都是组合在一起的 public function someProperty
  • iOS拍照倒放的处理方法

    我在网站上使用输入字段 以便用户可以给自己拍照 在 iPad iPhone 上 生成的图片是颠倒的 如何轻松检测用户是否使用相机 以便我通过 Javascript 旋转图像 之后我在 Javascript Canvas 中使用该图片 我得到
  • 使用通用通配符代替接口

    如果你想存储类型的对象数组MyInterface 以下两种形式都可以接受吗 如果可以的话 您什么时候会使用第二种形式而不是第一种形式 i 仅使用一个接口 List
  • Matplotlib 绘图窗口未使用 command-w 关闭

    我在我的Mac上使用ipython3 版本如下 Python 3 5 2 Anaconda custom x86 64 default Jul 2 2016 17 52 12 and matplotlib版本2 0 0 我改变了后端maco
  • 哎呀!使用保留字来命名列

    我制作了一个 bigquery 表 其中有一列名为 row 无引号 doh 现在 如果我引用该列 我的 sql 将无法编译 SELECT row etext FROM hcd hdctext LIMIT 1 ERROR 我没有看到 ROW
  • 如何在Java中使用snake yaml序列化具有自定义名称的字段

    我正在尝试序列化具有如下字段的 Java 实例 public class Person private String firstName private String lastName public String getFirstName
  • shell脚本中的三重嵌套引号

    我正在尝试编写一个 shell 脚本来调用另一个脚本 然后执行 rsync 命令 第二个脚本应该在它自己的终端中运行 所以我使用gnome terminal e 命令 该脚本的参数之一是一个字符串 其中包含应提供给 rsync 的参数 我把
  • 在 Xamarin 应用程序中将项目添加到 Android 上的 ListView

    我正在尝试重新混音将项目添加到 ListView 的基本 Android 建议 https stackoverflow com q 4540754 419956在 Xamarin 应用程序中 但到目前为止我失败了 在 Xamarin Stu
  • 具有延迟加载功能的 ViewModel 类的单元测试

    我正在尝试为具有延迟加载的 viewModel 类编写单元测试 我有以下 ViewModel 类 abstract class DetailViewModel item TmdbItem BaseViewModel private val
  • 使用 bash 和正则表达式在一行中查找并终止进程

    我在编程时经常需要杀死一个进程 我现在的做法是 ps aux grep python csp build py user 5124 1 0 0 3 214588 13852 pts 4 Sl 11 19 0 00 python csp bu
  • 如何在 MSBuild 中递归调用任务?

    例如 我想每次调用这些脚本传递差异参数