问题标签 [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.
msbuild - 在基于 MSBuild/约定的文件名生成中删除尾部斜杠
我正在尝试根据目录中的以下约定搜索一组程序集:
我首先创建了一个 MSBuild ItemGroup [通过在 .RecursiveDir 部分上批处理另一个 ItemGroup]。
每个项目都有一个尾部斜杠,即:
说:
现在,我想从此列表中生成一组文件名。
问题是:
生成:
我不希望在.dll
.
实现这一目标的最干净的方法是什么?
我知道有一个 HasTrailingSlash 表达式运算符,但在 OOTB 任务中没有 RemoveTrailingSlash 任务的迹象?。我对所需的 MSBuild 版本并不挑剔。
msbuild - 如何在 MSBuild 中获取扩展名(不带点)
我有一个 ItemGroup,我在我的 MSBuild 项目中使用它的元数据作为标识符进行批处理。例如:
但是,这不起作用,因为 Extension 中有一个点,它对于 Id 是无效字符(在 BuildStep 任务中)。因此,MSBuild 在 BuildStep 任务上总是失败。
我一直在尝试删除该点,但没有运气。也许有一种方法可以将一些元数据添加到现有的 ItemGroup 中?理想情况下,我想要类似 %(TestSuite.ExtensionWithoutDot) 的东西。我怎样才能做到这一点?
msbuild - 在 MSBuild 中创建字符串的 ItemGroup
我想创建一个任意字符串/名称的“ItemGroup”,以便使用 MSBuild 转换,例如:
然后我希望将这些类别的转换传递给控制台应用程序,例如:
我之所以在引号中说“ItemGroup”,是因为我不确定以这种方式使用 ItemGroups 是否适用于我——据我所知,文档中没有任何内容表明 ItemGroups必须是文件,但是,由于缺少必需的“包含”属性,使用上述方法会导致错误消息。
- 有没有办法使用 ItemGroups 完成上述操作?
- 或者,是否有更好的方法来实现上述目标而不使用 ItemGroups?
msbuild - MSBuild ItemGroup 包含/排除模式问题
问题:没有根据 exclude 属性中传递的值正确构建 ItemGroups 数组。
如果您运行此脚本,它会创建一些示例文件,然后尝试根据 Include/Exclude 属性创建一个名为 TheFiles 的数组,问题是当 Exclude 不是硬编码或非常简单的属性时,它会出错。
目标 DynamicExcludeList 错误地选择了这些文件:
.\AFolder\test.cs;.\AFolder\test.txt
目标 HardcodedExcludeList 正确选择了这些文件:
.\AFolder\test.txt
非常感谢任何帮助,这让我发疯。
(注意它的 msbuild v4)
这是输出,请注意“TheFiles”和“TheFilesWithHardcodedExcludes”之间的区别
编辑
我已经更新了上面的脚本以使用 CreateItem,但是当要排除的项目列表包含超过 1 个路径时仍然存在问题(即CommonFileExclusion的值已更改):
msbuild - MSBuild 包任务 - Web 部署
我正在尝试将自定义文件添加到我们的 Web 部署包中,根据此博客发布: http ://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx
我们在 AppBuildFolder 中还有一些其他引用,我们需要将它们复制到包中,但我从未在消息中看到任何找到的文件输出。有任何想法吗?
谢谢安迪
collections - MSBuild 元数据加入项目组
我有两个想要加入的项目组:
使用常规连接会给我一个包含 4 个项目的集合:
如何创建以下集合:
msbuild - 通过 FTP 发布网站时未拾取 ItemGroup
在我的 MSBuild 中,我创建了一个项目组,如下所示:
然后我尝试通过 FTP 发布网站。除非我将“SomeFileType”更改为“Content”,否则上述项目组不会被拾取。
我想使用自定义名称的原因是稍后在构建文件中我需要使用@(SomeFileType) 引用这个文件集合。
您是否有任何想法来完成上传文件并能够引用这组项目?
谢谢!
PS我还尝试添加以下内容以确保可以拾取所有文件。
但这种解决方案并不理想。首先,它涵盖了所有文件。其次,在我的解决方案资源管理器中,一些文件显示了两次。
msbuild - MSBuild 项目不能在 MSBuild 任务中使用,错误 MSB4012
我有以下 MSBuild 项目文件:
当我运行它时,我得到一个错误:
C:\Repositories\Project\Build\Build.proj(22,16): error MSB4012: The expression "@(Base->'%(FullPath)')\Deploy" 不能在这个上下文中使用。项目列表不能与需要项目列表的其他字符串连接。使用分号分隔多个项目列表。
为什么会出现此错误,如何避免?我使用 item Base
insideItemGroup
是因为我需要摆脱..
路径,并Items
允许通过%FullPath
元数据来实现。如果我使用 just PropertyGroup
then 一切正常,但我..
在所有路径中都有这个。
msbuild - MSBuild、CreateItem 到 ItemGroup 以将目标放置到多个文件夹中
短篇小说:我有一个列表,其中包含一个名为 true 的属性。我想将所有这些文件复制到文件夹列表中,例如由...定义
一些文件夹
为此,这就是我今天要做的事情:
我已经有一个名为 Binplace 的目标,它在内部调用 Copy。问题是这是一个单一的元素,我不知道如何在其中多个项目上调用 Copy
在我的 CSPROJ 文件中,我这样做:
msbuild - MsBuild: Passing an ItemGroup with CallTarget
I'm having some problems witht the scoping of item groups I create in an MSBuild script. Basically, what I want to do is to have two different targets - let's call them RunUnitTests
and RunIntegrationTests
- that generate an item group called TestAssemblies
and then call RunTests
, which uses TestAssemblies
to determine which assemblies to run tests from.
The two different targets for unit and integration tests both depend on the build target and get an item group with all compiled assemblies from there, but since the RunTests
target will be called from different places, it can't really depend on either of them. Thus, I need to pass the item group to the common testrunner target somehow. However, this seems to be impossible, because changes to an item group within a target seems to be scoped to only work within that target.
I've seen these posts, but they only seem to confirm my fears, and suggest DependsOnTarget
as a workaround - which won't work for me, since I need to get the items from different places on different runs.
This is what I have so far:
Is there any way around this, or will I have to completely restructure my build script?