我可以在 MSBuild 文件中执行循环吗?

2024-03-14

目前,我让他遵循以下代码MSBuild项目文件。这真的很简单。定义4变量并为每个变量调用一次我的 MSBuild 任务:

求代码~~

<ItemGroup><JS_File1 Include="file1.js"/></ItemGroup>
<ItemGroup><JS_File1 Include="file2.js"/></ItemGroup>
<ItemGroup><JS_File1 Include="file3.js"/></ItemGroup>
<ItemGroup><JS_File1 Include="file4.js"/></ItemGroup>

<JavaScriptCompressorTask SourceFiles="@(JS_File1)" OutputFile="@(JS_File1).min"/>
<JavaScriptCompressorTask SourceFiles="@(JS_File2)" OutputFile="@(JS_File2).min"/>
<JavaScriptCompressorTask SourceFiles="@(JS_File3)" OutputFile="@(JS_File3).min"/>
<JavaScriptCompressorTask SourceFiles="@(JS_File4)" OutputFile="@(JS_File4).min"/>

一点也不令人兴奋。

我想知道是否可以将其重构为这样的东西。

失败-伪代码~~

<ItemGroup>
    <JS_File1 Include="file1.js"/>
    <JS_File1 Include="file2.js"/>
    <JS_File1 Include="file3.js"/>
    <JS_File1 Include="file4.js"/>
</ItemGroup>

<!-- now this is the shiz i have no idea about -->
foreach(@(JS_Files))
    <JavaScriptCompressorTask SourceFiles="@(theFile)" OutputFile="@(theFile).min"/>

在 MSBuild 中可以做到这一点吗?

因此,该任务被称为“每个文件一次”。或者更确切地说,“项目组中的每个项目一次”?


您可以使用项目元数据来批处理任务(请参阅http://msdn.microsoft.com/en-us/library/ms171474.aspx http://msdn.microsoft.com/en-us/library/ms171474.aspx).

所有项目都有称为“身份”的元数据,其中包含Include属性。如果您使用元数据引用语法%(Identity),这将指示 MSBuild 对每个唯一的 Include 值执行任务。

<ItemGroup>
    <JS_File1 Include="file1.js"/>
    <JS_File1 Include="file2.js"/>
    <JS_File1 Include="file3.js"/>
    <JS_File1 Include="file4.js"/>
</ItemGroup>

<JavaScriptCompressorTask SourceFiles="@(JS_File1)" OutputFile="%(Identity).min"/>

请注意,MSBuild 知道您正在引用JS_File1项目组,因为您在任务中引用了它。否则你需要使用语法%(JS_File1.Identity).

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

我可以在 MSBuild 文件中执行循环吗? 的相关文章

  • 是 F# 映射上的迭代还是集合中序遍历?

    AFAIK F Map 和 set 被实现为红黑树 所以我猜这些的迭代将是有序遍历 我做了一些测试 迭代结果总是排序的 但我想确定一下 是按顺序遍历吗 MSDN 上的文档非常适合解决这个问题 例如 返回值Set toSeq http msd
  • 如何在 for 循环中跳过一些迭代

    在 python 中 我通常简单地循环遍历范围 for i in range 100 do something 但现在我想跳过循环中的几个步骤 更具体地说 我想要类似的东西continue 10 这样它就会跳过整个循环并将计数器增加 10
  • xsl:for-each 循环内的计数器

    如何在 xsl for each 循环内获取一个计数器 该计数器将反映当前处理的元素的数量 例如我的源 XML 是
  • 你如何处理冗余代码?

    我有一个类 它是代码库项目的一部分 该项目是为不再需要的特定目的而编写的 所以问题是你如何处理这样的代码 您是否简单地删除它 或者您是否记住它 未来的开发人员可能会遇到它 但没有意识到他们可以忽略它 或者您是否有某种存档系统 是否存在公认的
  • for 循环语法,其中包含 if 语句

    使用 if 语句编写 for 循环的普遍共识是什么 for int i 0 i lt hi i if some invalid condition continue if another invalid condition continue
  • 如何使用 MsBuild v15 构建 C++ 项目?

    我在 Visual Studio 2017 中使用 NuGet 包管理器安装了以下程序集 Microsoft Build Microsoft Build Framework Microsoft Build Utilities Core 一切
  • 如何设置 TeamCity NuGet 安装程序的 MSBuild 版本?

    我正在尝试使用以下命令恢复 NET Core 解决方案的 NuGet 包NuGet 安装程序 https confluence jetbrains com display TCD10 NuGet InstallerTeamCity 构建步骤
  • 遍历多行字符串

    我得到一些数据 def data some useless text n even more n finally interesting text 我怎样才能得到其中 有趣的部分 所以基本上所有行都不是以 开头的 Groovy 的一种选择是
  • 将解决方案升级到 .NET Framework 4.5 后,每日部署停止工作

    我们已经成功地使用 TFS2010 中的 msdeploy 每天更新我们的开发网站 在我们升级到 VS2012 我们的应用程序从 NET Framework 4 0 到 4 5 以及 ASP NET MVC 从 3 0 到 4 0 之前 这
  • 动态设置 Web 应用程序项目的 IISUrl

    我有一个 Web 应用程序项目 我希望能够在完全独立的 IIS 站点上进行分支和开发 而不必每次都继续编辑 vbproj IISUrl 设置 我尝试添加一些标准属性的导入 以便我可以在 WAP 文件之外维护它们 但是当我在元素中引用它们时
  • 使用 nditer 进行浅层迭代

    我有这样一个数组 gt gt gt y np random randint 0 255 2 2 3 gt gt gt array 242 14 211 198 7 0 235 60 81 164 64 236 我必须迭代每个triplet元
  • 在 R 中替换数据帧中最低列表值的最有效方法

    我有一个数据框 df 其中包含为每个受试者记录的数字列表 向量 用于测试项目的两次重复 subj item rep vec s1 1 1 2 1 4 5 8 4 7 s1 1 2 1 1 3 4 7 5 3 s1 2 1 6 5 4 1 2
  • 如何避免循环

    大家好 我是 R 新手 我有两个面板数据文件 其中包含 id date 和 ret 列 文件 A 的数据比文件 B 多得多 但我主要处理文件 B 数据 id 和 date 的组合是唯一标识符 有没有一种优雅的方式来查找 B 中的每个 id
  • 循环遍历服务器上的数据库,并更新数据

    我有一台带有多个数据库的服务器 我需要循环访问这些数据库并更改每个数据库中的一个记录 一个表中的值 如何才能做到这一点 EXEC sp MSForEachDB Use UPDATE dbo MyTable SET MyValue 999
  • MSBuild 未使用所有核心进行构建

    我有一个使用 Visual Studios 2008 配置的项目 当我打开 IDE 并点击构建时 系统上的所有核心都用于构建该项目 但是 当我尝试从命令行构建时 仅使用 1 个核心 这是我正在运行的命令 C Windows Microsof
  • C# 计算元音

    我正在学习 C 编程 并且正在尝试计算元音 我让程序循环遍历句子 但它不返回元音计数 而是仅返回字符串的长度 任何帮助将不胜感激 static void Main int total 0 Console WriteLine Enter a
  • 迭代 div 内的输入

    我试图通过 jQuery 迭代放置在特定 div 上的所有输入 但没有响应 我无法使用警报查看输入的值 我究竟做错了什么
  • CMake 和 Visual Studio:如何获得快速、安静的命令行构建?

    我有一个 cmake 项目 它成功地完成了我想要的一切 但我有大约 100 个文件 当我只需要重新编译一个文件时 我厌倦了每次看到生成的巨大输出 每个文件 30 行 明确地说 我正在编译cmake build 得到这个结果 我需要传递给编译
  • 具有依赖项的自定义 MSBuild 任务

    我编写了一个使用第三方程序集的 MSBuild 任务 当我在项目中使用该任务时 MSBuild 抱怨它无法加载第三方程序集 毫不奇怪 我应该将第三方程序集放在哪里 以便 MSBuild 可以使用它们 我尝试向它们添加项目引用但没有成功 我不
  • 循环索引依赖于前一个索引

    我有一个清单 fruits apple orange blueberry strawberry 如何创建循环以使一个索引依赖于另一个索引 for i in range len fruits for j range len fruits i

随机推荐

  • R 在 HPC MPIcluster 上运行 foreach dopar 循环

    我可以访问带有 MPI 分区的 HPC 集群 我的问题是 无论我尝试什么 我的代码 在我的 PC 上运行良好 都无法在 HPC 集群上运行 代码如下所示 图书馆 TM 图书馆 qdap 图书馆 雪 图书馆 doSNOW 库 foreach
  • 创建 24 位 WAV 文件需要做什么特别的事情吗?

    我可以成功创建 16 位 wav 文件 但创建 24 位文件时 我听到的只是白噪声 我正在设置 24 位有符号整数数据块 我是否必须在 wav 文件头的第 20 字节处设置一些特殊的音频格式 我目前使用的是格式1 Edit 1 The wB
  • 如何在 Swift 中在地图图钉周围添加圆圈?

    我一直在试图解决这个问题 但没有运气 我可以做什么 显示用户当前位置 在我想要的任何地方显示图钉 取决于纬度和经度 我不明白的是 如何围绕该位置创建地理围栏 func setupData 1 check if system can moni
  • Object.Create() 在幕后做什么?

    我正在深入研究 JavaScript 的原型继承 当使用 Object Create 创建对象时 有人可以展示幕后发生了什么吗 Object Create 是否依赖于幕后的 new 和构造函数 When Object create 用于创建
  • 为什么 C++ 隐式转换有效,但显式转换无效?

    以下代码在 C 11 中编译成功 include json hpp using json nlohmann json using namespace std int main json js asd string s1 js lt comp
  • 如何获取 firestore 文档中的字段?

    我正在开发一些与 Firestore 配合使用的云功能 我正在尝试获取特定文档的字段列表 例如 我有一个文档参考even data ref 但我不确定该文档是否包含我正在查看的字段 我想获取字段名称的列表 但我不知道该怎么做 我试图使用Ob
  • 使用目录树和过滤填充 TTreeView

    在 Lazarus 0 9 28 2 项目上我有一个TTreeView 与名字DirTree在我的表格上 frmConvert 但我想用所有目录树填充它 因为C 像这样 C 目录树 http i imagehost org 0185 cdi
  • 卷曲 IP 地址

    我需要发送一个带有用户 IP 地址而不是服务器 IP 地址的卷曲请求 我尝试了这个但没有运气 curl setopt ch CURLOPT INTERFACE ip 有任何想法吗 好吧 所以没有办法安全地欺骗curl请求的ip地址 但我发现
  • 2 的幂公式帮助

    我知道 Java 中的 2 i i i 1 1 可以让我找到一个数字是否是 2 的幂 但是有人可以解释为什么这样做吗 2 i i i 1 1 基本上 如果i是 2 的幂 它将有一个1在其位模式中 如果从中减去 1 则该值的所有低位1有点变成
  • LinkedIn 验证用户身份验证令牌服务器端

    经过一天的研究 我以以下问题结束 我正在使用 ember js 构建一个 Web 应用程序 目前我正在使用 linkedin javascript sdk 实现 LinkedIn 登录 我遇到的问题是 在收到用户信息 令牌 电子邮件 名字等
  • 为什么 SSLSocketFactory 缺少 setEnabledCipherSuites?

    SSLSocketFactory提供getDefaultCipherSuites 默认情况下在套接字上启用的密码 和getSupportedCipherSuites 如果需要 可以启用密码 然而 SSLSocketFactory不提供set
  • 迭代 MultiDict 中的键和所有值

    我有一本字典 params ImmutableMultiDict dataStore tardis symbol 1 symbol 2 我希望能够迭代字典并获取所有值及其键的列表 但是 当我尝试这样做时 它只获取第一个符号键值对并忽略另一个
  • 选择更改事件 - Html.DropDownListFor

    我有两个下拉列表 从第一个值中选择的值加载另一个值 当控制器中有辅助方法时 我该如何做到这一点 using Html BeginForm div table width 100 cellpadding 0 cellspacing 0 tr
  • 添加 BouncyCastle 提供程序会破坏 KeyStore.load()

    我使用以下命令生成了密钥库 keytool genkeypair keystore test ks storetype pkcs12 然后我运行以下测试 base64 代表我创建的密钥库 private static final Strin
  • 实例关闭时的 Spring Cloud Gateway 500

    我有一个使用Spring Cloud Load Balancer Spring Cloud版本 Hoxton SR6 的Spring Cloud Gateway eureka客户端 应用程序 并且我有一个Spring Boot应用程序的实例
  • std::to_string 线程安全吗?

    我正在寻找使用将整数类型转换为字符串std to string http en cppreference com w cpp string basic string to string 但我看到了这一段 std to string依靠std
  • 将中文文档拆分成句子[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我必须将中文文本分成多个句子 我尝试了斯坦福文档预处理器 它对于英语来说效果很好 但对于中文则不然 请
  • Java 说 FileNotFoundException 但文件存在

    我的计算机科学课程有一项作业 其中要求读取包含多个测试分数的文件 并要求我对它们进行求和并求平均值 虽然求和和求平均值很容易 但我在读取文件时遇到问题 老师说使用这个语法 Scanner scores new Scanner new Fil
  • 使用 POST 发送数据到 JSONP 请求

    概括 想要使用 POST 方法将数据发送到另一个域 JSONP Code http jsonp scope baseApiUrl QueryBuilder getData callback JSON CALLBACK success fun
  • 我可以在 MSBuild 文件中执行循环吗?

    目前 我让他遵循以下代码MSBuild项目文件 这真的很简单 定义4变量并为每个变量调用一次我的 MSBuild 任务 求代码