问题标签 [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.

0 投票
1 回答
111 浏览

msbuild - 如何使用 msbuild 阅读邮件?

有没有办法使用 msbuild 读取邮件内容?有任何自定义任务或社区任务可用于实现此目的吗?

0 投票
2 回答
9989 浏览

msbuild-4.0 - When you import another msbuild file, what is the order of evaluation?

I have a shared properties file shared.properties.proj

I am searching for whatever level parent directory contains the directory named Shared Assemblies. or alternatively SharedAssemblies

I'd like to put this code in a central location for the sln, so that all the projects can just import it. projects in the sln are not all at the same hierarchy level.

Sample .csproj

I have this working in the main project without pushing the property group out to a satellite file that I import, but now want to make it reusable between other projects that could have shared references.

The BeforeTargets target shows this on the new attempt that is not working:

CheckReferencePaths: Doing CheckReferencePaths D:\projects\Team\Project\Adapters\DbAdapter\dbadapter.csproj(103,5): warning : SharedAssemblyPath not found at '' D:\projects\Team\Project\Adapters\DbAdapter\dbadapter.csproj(104,5): warning : SharedAssemblyPath not found at ''
FullPath=\NuGet\EntityFramework.4.3.0\lib\net40\EntityFramework.dll
FullPath=

How can I get the project file that imports the shared to evaluate the imported project's properties before it evaluates the item groups' hintpaths. Or is the evaluation order proper, but something else in my construction is incorrect?

0 投票
4 回答
8803 浏览

c# - 使用 Microsoft.Build.Evaluation 发布数据库项目 (.sqlproj)

我需要能够以编程方式发布 SSDT 项目。我正在考虑使用 Microsoft.Build 来执行此操作,但找不到任何文档。创建 .dacpac 似乎很简单,但我将如何发布到现有数据库或至少发布到 .sql 文件。这个想法是让它做当我右键单击项目并选择发布时所做的事情。它应该与选定的数据库进行比较并生成升级脚本。

到目前为止,这是我创建 .dacpac 的内容:

本质上,我正在尝试执行此MSBuild 示例显示的内容,但在代码中。

对不起,这就是我所拥有的。Build 类的文档很差。任何帮助,将不胜感激。

谢谢。

0 投票
1 回答
2924 浏览

msbuild - 如何将 PropertyGroup/ItemGroup 中可变数量的项目传递给 msbuild 脚本

请阅读,直到我清楚地说明我的问题。我正在尝试实现一个自定义 msbuild 任务,该任务将接受来自 msbuild 脚本的可变数量的输入参数。我知道海关任务中的输入参数数组

这些可以使用 propertygroup/itemgroup 声明如下

然后从VS 2010命令行我可以设置/覆盖属性如下

msbuild somefile.csproj /t:MyTarget /p:Item1=Name1;Item2=Name2...等

我的问题是: - 是否可以在构建文件中声明可变数量的属性组/项目组,以便我可以使用属性组/项目组从 msbuild 命令行中传递“n”个可变参数?

msbuild somefile.csproj /t:MyTarget /p:Item1=Name1;Item2=Name2;ItemN=NameN('N' 仅用于说明目的)

这甚至可能吗?

在此先感谢,任何帮助将不胜感激。

0 投票
0 回答
173 浏览

msbuild - 消除 msbuild 目标中的重复?(尤其是物品标识符的重复,不能扩展Exec Command属性中的Property)

我想尽量减少我的 msbuild xml 中的重复,特别是在我的 Target 的 Exec Command 属性中。

1) 最重要的是,在下面的目标中,我想取消重复 Exec 命令属性中的一对“%(ShaderVertex.Identity)”构造(例如,Property VertexTargetName 被定义为“ShaderVertex”,但是 % ($(VertexTargetName).Identity) 不会扩展 $(VertexTargetName)):

2) 最好不要在我的 Target 之前的 ItemGroup 中复制“ShaderVertex”标识符,但同样我不能在 ItemGroup 的上下文中扩展 $(VertexTargetName)。

3)不太重要的是,能够进一步减少我的目标之间的重复构造会很好。使用上面的示例,我想简单地将 $(VertexTargetName) 和字母“v”(告诉 HLSL 编译器编译顶点着色器)传递给一个神奇的目标生成器,该生成器填充与所有目标相同的所有数据 - - 或者更好的是,只需传递 $(VertexTargetName) 并允许目标生成器从这个参数推断需要传递“v”(而不是 PixelShader 的“p”,可以从 $(像素目标名称))。

有任何想法吗?

警告:我知道 msbuild 不是一种函数式编程语言,因此可能无法满足我的需求。我也知道 VS2012 自动处理 HLSL 编译,但我现在在 VS2010 上,并且想对 msbuild 有足够的了解来完成这类任务。

这是完整的 xml 清单:

0 投票
2 回答
5865 浏览

msbuild - 如何在 MSBuild 中创建新属性并在 WIX 中引用它

我们需要创建一个属性来指示我们的软件版本。然后我们想在我们的 WIX 项目中使用它,即在 wxs 文件中引用它。我们不想在 wxs 文件中定义它,因为我们希望 MSBuild 也根据此版本号重命名输出文件。PropertyGroup 中的常量定义不适合我们,原因如下:

PropertyGroup 中定义的属性是特定于配置/平台的。每当我们在 Visual Studio IDE 中从项目属性窗口修改此预处理器时,通常我们只修改特定配置/平台组合的值。(我知道可以在 IDE 中为 All Config/Platform 修改它,但实际上是通过复制所有组合来完成的。而且我们仍然有可能通过只修改一个组合的值来破坏同步。例如,默认情况下,当我们打开项目属性窗口的构建选项卡时,它将显示活动的配置/平台)。另一方面,即使我们可以在没有任何条件的情况下定义一个 PropertyGroup,但每当我们在 IDE 中对其进行修改时,我们通常只是针对特定组合进行修改,而不是全部修改。由于我们纯粹是在 VS IDE 中构建我们的软件,

我尝试在 BeforeBuild 目标中使用 MSBuild 的 CreateProperty 任务,但在接下来的执行中,该值似乎根本无效。例如,如果我覆盖 BeforeBuild 中的现有属性,并且当我在 WIX 中引用它时,它仍将使用旧值。如果我创建一个全新的属性,WIX 会抱怨未定义的预处理器。

有没有合适的方法来做到这一点:创建一个 MSBuild 属性并在 WIX 中使用它?

0 投票
1 回答
3714 浏览

regex - 为什么 $([System.Text.RegularExpressions.Regex]::IsMatch()) 在 ItemGroupDefinition 中被评估一次?

如此摆弄 MSBuild 任务,我发现 Regex 元数据属性被评估一次,而不是每个项目。

例如

产生这个输出

0 投票
1 回答
345 浏览

msbuild - MSBuild + 属性范围

我在 .csproj 文件中定义一个属性

我也有一个参考项目:说

是否有某种方法可以访问引用项目中的属性 $(DeploymentBranch) 或 $(AppRoot),即在文件 refproj.csproj 中。

如果我现在尝试访问它们,则值为空白

0 投票
1 回答
1611 浏览

msbuild - 如何根据项目设置属性值并将该属性用作属性函数的输入?

我正在尝试根据 Item 设置属性值但是属性似乎没有注意到 Item 例如,我的代码就像

但是当我运行它时,它说它无法读取 %(temp.Identity) 我错过了什么吗?谢谢!

0 投票
3 回答
3454 浏览

msbuild - MSbuild,如何访问内联任务代码中的项目属性值?

我有用 csharp 编写的内联任务代码

我想知道是否有办法访问内联任务代码中的propect属性

例如。我正在尝试用项目属性值替换字符串匹配。是否可以?