问题标签 [msbuild-propertygroup]
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 根据目标参数列表复制到多个位置?
我有一个要复制到多个位置的目录。
说我有
- 主页.aspx
我想把它复制到
- abc/home.aspx
- def/home.aspx
- ghi/home.aspx
所以我有两个问题:
- 如何定义列表 abc、def、ghi?
- 如何使用此列表的每个元素执行我的复制任务?
msbuild - 将属性组值从一个 MsBuild 任务传递到另一个
如何使一个构建目标中定义的值在另一个目标中保持有效?如果 PropertyGroup 不是我应该在这里使用的写入 MsBuild 实体,那是什么?ReleaseDir 在“Package”目标中打印正常,但在“DoPackage”中为空
c# - How to specify CodeAnalysisRules in MSBuild via commandline
I want to be able to specify the Code AnalysisRules in commandline MSBuild (for Code Analysis / FXCOP). The project file would have something like this in it:
<CodeAnalysisRules>-Microsoft.Globalization#CA1301;-Microsoft.Globalization#CA1302</CodeAnalysisRules>
So I would assume that I use something like this:
MSBuild.exe /property:RunCodeAnalysis=true /property:CodeAnalysisRules=-Microsoft.Globalization#CA1301
Which works fine, but when I want to add another rule, it does not like the semi colon:
MSBuild.exe /property:RunCodeAnalysis=true /property:CodeAnalysisRules=-Microsoft.Globalization#CA1301;-Microsoft.Globalization#CA1302
MSBUILD : error MSB1006: Property is not valid. Switch: -Microsoft.Globalization#CA1302
How can I specify more than one rule?
I am happy to reference a file, but I don't want to just change the project files.
Backgroud: I want to create a set of rules for a continuous integration server (Hudson in my case).
Note: I am running Visual Studio 2005
msbuild - MSBuild:如何控制分号分隔属性的解析
当单个属性包含分号时,在项目组中使用时,MSBuild 会自动将该属性解析为属性列表。这是我项目的一个片段:
当任务使用 @(InstallShieldProperties) 项目组时,MSBuild 会将 ConnectionString 属性解析为子集属性列表,因为它包含分号。
我知道我可以更改项目组的分隔符,但这不会有任何区别。我试图避免在自定义任务中操作 string[] 数组。
msbuild - MSBuild:星号和奇怪的 ItemGroup 排除行为
我有一个脚本,它试图ItemGroup
从某个目录中的所有文件中构造一个,同时排除具有某些名称的文件(无论扩展名如何)。
要排除的文件列表最初包含文件扩展名,我正在使用“社区任务”RegexReplace
将扩展名替换为星号。Exclude
然后我在项目的属性中使用这个列表。由于某种原因,文件没有被正确排除,即使列表看起来是正确的。
为了尝试找出原因,我创建了一个测试脚本(如下),它有两个任务:第一个以两种不同的方式使用文件模式列表初始化两个属性。第二个任务打印属性和在属性中使用这两个属性产生的文件Exclude
。
属性的值似乎相同,但结果组不同。这怎么可能?
输出(为了清楚起见,重新格式化):
观察两者ExcludeFilesA
并ExcludeFilesB
看起来相同,但结果组RemainingFilesA
和RemainingFilesB
不同。
最终,我想RemainingFilesA
使用与生成相同的方式ExcludeFilesB
生成的模式来获取列表。你能建议一种方法,还是我必须完全重新考虑我的方法?
msbuild - MSBuild:如何创建全局属性?
/p:MyProp=value
运行 MSBuild 时,可以从主脚本调用(通过MSBuild
任务)的每个 MSBuild 脚本访问在命令行中传入的任何内容。如何在任务中定义可以从每个脚本中类似访问的属性?
例如:
如果像这样运行:msbuild Script1.proj /p:GlobalProp1=VALUE1
上面的脚本产生以下输出:
我希望Script2.proj以某种方式设置 GlobalProp2 以产生以下输出:
这可能吗?如果可以,怎么做?
我已经看到使用环境变量的建议,但似乎唯一有帮助的情况是在父脚本中设置变量,并且使用 Exec 任务调用子脚本(否则 env.variable 更改有没有效果)。
msbuild - 如何在 MSBuild 中将自定义属性添加为 PropertyGroup 的子项?
我有以下构建脚本,我使用 MSBuild 运行:
当我现在在命令行上启动脚本时:
我在命令行输出中收到以下错误:
这基本上意味着:element<#text> 是 unknown child。
有人有想法吗?
编辑:对不起,我现在完成了脚本
msbuild - 是否有可能在另一个属性值中使用一个属性值?
我想做这样的事情:
将一个属性值作为另一个传递。有没有办法做到这一点?如何?
msbuild - 在 MSBuild 中找出当前操作系统的“位”
我有一个构建脚本需要硬编码可执行文件的路径。路径是:
- C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe
这工作正常,但现在我在 64 位操作系统上运行(但我的同事和构建服务器仍然在 32 位上)。
我需要这样的路径:
- C:\Program Files (x86) \Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe
但对其他人使用正常路径。
这是我的设置方式:
如果操作系统(不是当前的构建配置)是 64 位,我可以设置一个条件吗?
msbuild - MsBuild 中项目的评估范围和顺序
我想知道为什么在下面的代码中,MsBuild 拒绝设置后缀元数据。它确实适用于 CreateItem 任务而不是 ItemGroup 声明(因为 CreateItem 是在构建时计算的)但我不能在这里执行此操作,因为此代码位于“属性文件”中:该项目没有目标,它只是一堆我在实际项目中包含的属性/项目。
目的地构建良好,但未设置后缀元数据。
至于现在,我已经在我需要的每个项目中复制了目的地定义,但它不是很干净。如果有人有更好的解决方案,我很感兴趣!