问题标签 [msbuild-itemgroup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2151 浏览

msbuild - 通过 MsBuildProj 文件为多个项目转换多个配置文件

我正在尝试根据模式在文件列表上运行多个命令(*.config给定目录的子目录下的所有形式文件),如下所示:

但是,不执行匹配文件的批处理。

  • 从我添加的输出中,我看到该属性$(PublishFolder)指向正确的目录,但是,该项目@(ConfigFiles)为空。

我还尝试手动列出目录名称和配置文件名称,如下所示:

但是,在这种情况下,转换仅应用于一个站点中的一个文件。


知道该怎么做才能使它正常工作吗?


我经历过的类似问题和 MSDN 参考资料:

MSBUild:复制名称基于原始文件的文件(遵循模式)

MSBuild 多输出路径

如何从 msbuild 项目文件本身中使用不同的参数调用相同的 msbuild 目标两次

msbuild 数组迭代

http://msdn.microsoft.com/en-us/library/ms171454.aspx


编辑:

移动任务下的 ItemGroup 可以在创建文件后读取文件列表,但是,现在只转换列表中的第一个文件:

0 投票
0 回答
305 浏览

visual-studio - 从 msbuild 中的副本中排除可配置的文件列表

扩展以下帖子尝试排除执行递归复制 (MSBuild) 的某些扩展

我想排除在属性组中定义的文件列表,以便我可以在 teamcity/jenkins 中配置它

现在我想排除这些如下

什么是定义我的属性组(“ExcludedFiles”)的正确语法以及如何处理路径。鉴于所有排除的文件都在同一个文件夹中($(PathToOutput))?

0 投票
2 回答
1036 浏览

msbuild - msbuild 从属性组创建 itemgroup

我想传递一个分号分隔的字符串列表。
每个字符串代表一个文件名。

现在我想创建一个项目组,它应该给我特定文件夹中的所有文件,不包括文件名列表,例如:

如果文件名变量中包含任何一个文件名,我如何遍历当前文件夹的文件并匹配每个文件名。

0 投票
0 回答
42 浏览

msbuild - 将文件拆分为 ItemGroup 有什么意义?

C# 项目中包含的元素(以 MSBuild 格式定义),例如文件夹、要编译的文件或资源文件,可以分组到<ItemGroup>元素中。

当我查看SharpDevelop生成的各种项目文件时,通常会创建几个项目组。出于某种原因,项目似乎或多或少地随机分类到这些组中(我认为所有文件夹都聚集在它们自己的组中,但这是我能识别的唯一模式)。我试图找出原因,或者,如果没有外部原因,我只是希望有一个(有点引用的)声明,比如“没关系,可以以任何方式将项目分类到项目组中。 "

特定分组模式对 MSBuild 有什么好处吗?

0 投票
1 回答
447 浏览

batch-file - msbuild itemgroup 项目

我有正在执行批处理文件的 msbuild 文件。

构建文件:

批处理文件很简单:

我想得到下一个输出:

如何做到这一点?

0 投票
0 回答
29 浏览

msbuild-propertygroup - 将不相关的 Property 和 ItemGroup 合并为一个 Property

我有一个 Property 和一个 ItemGroup,我需要将它们合并为一个具有 1 对 1 关系的 Property:

我需要做什么才能得到这样的最终结果?

0 投票
0 回答
43 浏览

visual-studio - Msbuild - 由于 Aestrik (*),输出间歇性移动

我正在尝试使用 msbuild 构建 csproj,它会即时存储输出,然后将其移动到配置的输出目录,简单 :)。但是使用 aestrik (*) 传递的值会间歇性地工作,但其他值总是会移动。

所需代码的快照:-

输出 - 我第一次构建项目结果 -

我第二次构建项目结果 -

注意 - 构建顺序没有问题,如果我指定特定的 dll 而不是 *.dll ,它每次都有效。

0 投票
0 回答
252 浏览

msbuild - 从 msbuild 中的通配符 ItemGroup 中选择单个项目

我正在尝试在 MsBuild 文件中创建一个属性,使用ItemGroup. 该属性需要是由nuget update命令“恢复”的可执行文件的路径。问题是我事先不知道文件将在哪里结束(因为 nuget 更新将获得最新版本)并且有可能拥有多个文件(显然 nuget 可能会忘记删除旧的包文件夹)。

到目前为止,我尝试过的是:

它是这样使用的:

我需要通配符来查找文件,一切正常,除非有多个版本,Executable项目变成这样:

显然ItemGroup是找到两者并创建一个 -;分隔的列表。我需要一种方法来排除所有内容并只保留一个......甚至更好地了解如何通过 MsBuild 实现我需要的东西(如果可能的话,这并不意味着创建自定义任务或只是编写单独的脚本)。

谢谢!

0 投票
1 回答
97 浏览

msbuild - 如何使用确切的 msbuild 项“未扩展的通配符表达式”值

我有以下 MSBuild .proj 文件内容:

我看到以下输出:

我真正需要的是包含以下子文件夹文件

因此,排除的子文件夹项目应为:

为了能够得到这样的输出,我需要表达式

我正在使用的语法

没有给我我需要的东西。正确的语法是什么?或者这是不可能的?

0 投票
2 回答
1199 浏览

batch-file - 使用 MSBuild 任务 RoboCopy 批量复制项目列表

在 中定义了源目录和目标目录的列表。我需要一个任务/目标来根据定义的项目组属性执行 robocopy。

我尝试了以下代码,期望对部署文件夹中的每个项目执行复制操作。

此外,如果我们看到项目 1 和 2(还有 3 和 4),它们在将类似类型的文件从它们的 %ItemName 复制到具有子目录 %ItemName 的相同路径的意义上是相同的。如果我们也能避免这种额外的代码气味,那就太好了。希望像下面这样的工作: