问题标签 [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 投票
2 回答
1779 浏览

visual-studio-2010 - msbuild 包括/从子目录复制到根目录 - 可能吗?

我可以包含来自子目录的文件,但是否将它放在 bulid 的根目录而不是其原始子目录中?

示例:我们有多个 robots.txt 文件用于不同的发布配置。这些文件在解决方案中为 \IncludeTest\Development\robots.txt 和 \IncludeTest\Production\robots.txt

我可以使用以下方法适当地动态抓取它们:

但是当我这样做时,我会维护 \IncludeTest\Development\(或 \IncludeTest\Production)目录。有什么方法可以将它包含在根目录中,robots.txt 应该在哪里?

0 投票
1 回答
2924 浏览

msbuild - 如何在不执行构建的情况下检索@(TargetOutputs)

我正在实施一个 MSBuild 框架,以推动构建和部署许多按层次结构组织的项目。

为了实现正确的 Clean/Clobber 逻辑,如果使用当前选项执行构建,我想检索将被编译的文件列表。

我尝试了各种方法,包括创建自定义任务,在其中我构建了一个自定义项目文件,该文件导入了我想要从中检索属性/项目的原始项目。但这并没有给我可靠的价值。

有没有办法在不实际执行构建的情况下检索 MSBuild 项目的 TargetOutputs 项组?

0 投票
1 回答
4688 浏览

msbuild - 将 ItemGroup 转换为分隔字符串

我的问题几乎与在 MSBuild 中创建字符串的 ItemGroup相同,但是那里提供的解决方案似乎仍然继承了现有的分隔符。这是我正在尝试做的简化片段:

我想要的输出是这样的:

但是上面的代码片段会产生以下输出

我做错了什么?

0 投票
2 回答
6926 浏览

msbuild - 清空 MSBuild ItemGroup

有没有办法在不诉诸目标的情况下删除 ItemGroup 的内容?我正在寻找相当于:

谢谢

0 投票
1 回答
544 浏览

.net - MSBuild:如何始终包含文件(导入项目)?

我有一个文件:CoreAssemblyInfo.cs,我想在属性文件夹下的项目中显示它...

我意识到我可以将现有文件添加为链接,但我希望以某种方式使用 MSBuild 来拥有我所有的“核心”内容。我尝试执行以下操作:

核心.csproj:

但它没有出现在项目中......我正在寻找什至可能吗?

0 投票
1 回答
1774 浏览

msbuild - 在目标中的 ItemGroup 的元数据定义中引用众所周知的项目元数据

这是一个 MSBuild 脚本:

我期望的输出是:

但结果是:

为什么%(FileName)%(Extension)当 ItemGroup 在目标内时,众所周知的元数据引用的行为会有所不同?

是否有可能在目标内获得“目标外”行为?

0 投票
0 回答
468 浏览

msbuild - VS 和导入的 msbuild 项目文件

我的一个 msbuild 项目文件中有一个 import 语句:

导入的 msbuild 项目具有以下属性组:

以及以下项目组:

基本上我要做的是在我的所有项目文件中都有上述导入语句,然后通过调整导入的项目文件来操纵 FXCop 是否运行。

问题是,从命令行,所有这些都可以正常工作(除了常量 CODE_ANALYSIS,我必须使用 msbuild /t:build proj.sln /p:DefineConstants="CODE_ANALYSIS=true" 之类的东西来设置它。没关系。

从 VS 2010 IDE 来看,它只是......地狱!它“看起来”像 VS 尊重导入的 msbuild 项目文件中的所有内容......除了
1)包含的文件是灰色的,这意味着只有在“显示所有文件”时才会在 IDE 中显示。这意味着它没有编译。我可以将完全相同的 ItemGroup 复制到父 msbuild 项目文件中,并且该文件在解决方案资源管理器中显示为非灰色,这意味着它已被编译。
2) 抑制文件用于告诉 FXCop 在进行代码分析时忽略哪些对象。当我将抑制文件正确编译为项目的一部分时,FXCop 似乎忽略了它。阅读此内容,显然需要打开 CODE_ANALYSIS 常量。我以为我是从导入的项目文件中做的,但没有得到尊重。即使 VS IDE 中的项目属性窗口显示它是一个已定义的常量。同样,当我将 DefinedConstansts 声明移动到父项目文件之一时,IDE 会尊重该常量。

所以......我不确定我是否需要将它分成两个帖子,但这是我的问题:
1)我如何让 IDE 尊重和编译导入的项目文件中列出的文件?
2)如何让 IDE 在导入的项目文件中尊重 DefineConstants

0 投票
1 回答
544 浏览

msbuild - msbuild 输出删除程序集

我有一些看起来像这样的 msbuild 代码:

所以我正在构建我所有的单元测试项目,并使用 TargetOutputs 参数上的输出任务来捕获构建的 dll。问题是其中一个项目正在调用一个任务,该任务输出一些我不想实际运行 xunit 的 dll。

奇怪的是,Remove="*.Example.dll"似乎根本没有任何影响,而 xunit 无论如何都在尝试测试程序集。

为什么Remove不工作?

0 投票
1 回答
116 浏览

tfs - 在 itemgroup 之间映射数据

我有两个项目组

取决于

我的目标如下

复制过程完成后,gpd1.GPD 和 gpd2.GPD 从 d:\gpd 复制到 d:\drvs\gpd\gpd1.GPD 和 d:\drvs\gpd\gpd2.GPD

但我想把它复制到

d:\code1\drvs\gpd\gpd1.GPD

d:\code1\drvs\gpd\gpd2.GPD

d:\code2\drvs\gpd\gpd1.GPD

d:\code2\drvs\gpd\gpd2.GPD

d:\code3\drvs\gpd\gpd1.GPD

d:\code3\drvs\gpd\gpd2.GPD

d:\code4\drvs\gpd\gpd1.GPD

d:\code4\drvs\gpd\gpd2.GPD

d:\code5\drvs\gpd\gpd1.GPD

d:\code5\drvs\gpd\gpd2.GPD

取决于 - - - - - - - - -

d:\code1000\drvs\gpd\gpd1.GPD

d:\code1000\drvs\gpd\gpd2.GPD

请帮忙

0 投票
2 回答
633 浏览

visual-studio-2010 - 通过 MSBuild 从 None ItemGroup 复制项目时保留目录结构

在我的 cpp 项目文件中,我有一个这样定义的项目组:

我有一个 AfterBuild 目标,我想将上述文件(并保留它们的目录结构)复制到一个新位置,例如:

注意: $(NewDirectory) 在其他地方定义。

然而,上面只是将文件复制到 $(NewDirectory) 而忽略了项目列表的目录结构(即 Dir1、Dir2 和 Dir3)。有没有办法在不必创建新列表的情况下做到这一点?