问题标签 [msbuild-target]

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 回答
885 浏览

visual-studio-2012 - 对自定义 MSBuild 文件中执行的项目/解决方案构建和 cmd 文件进行排序

我需要将一系列步骤联系在一起,包括构建解决方案、项目和使用自定义 MSBuild 文件运行 .cmd 文件。

我的第一关如下:

这会导致错误,因为 Exec 元素位于错误的位置。

基本上,我需要构建 solution1.sln、solution2.sln、helper1.csproj 和 helper2.sln(按顺序),然​​后运行文件 GetFiles.cmd,然后构建 prod.wixproj,然后运行 ​​final.cmd 文件。

我看过 MSDN (此处此处此处)、博客,并浏览了各种 stackoverflow 问题(包括thisthisthisthis),但没有一个能完全解决我想要做的事情。这是我第一次使用 MSBuild,所以我可能错过了一些东西。将不胜感激任何指针...

0 投票
1 回答
737 浏览

visual-studio - 使用外部条件运行 msbuild 任务

是否可以忽略 proj 文件中的目标?任何类型的

或者我们可以在调用 msbuild 时为目标设置条件值吗?

& 在 proj 文件中我们可以有

还有其他可行的建议吗?

整个故事:我们有很多开发人员,其中一些需要这个目标来运行,而另一些则不需要。所以我们需要对目标进行条件调用。

0 投票
1 回答
114 浏览

msbuild - MSBUILD 脚本 - 这是循环的正确方法吗?

我想在打包应用程序(.net mvc 3)之前运行自定义任务将 .less 文件编译为 .css。

我没有很多创建 MSBUILD 脚本的经验,所以通过在线阅读我想出了下面的代码。它可以工作,但我觉得应该有一种方法可以让我跳过 ItemGroup 显式声明并指示脚本查找“Skins 文件夹下的任何文件夹”。这有可能吗?

0 投票
0 回答
464 浏览

.net - 在导入的 .targets 中获取自定义构建任务中的项目

在为自定义构建任务创建 NuGet 包时,我想在 NuGet 包.targets的文件夹中使用单独的文件/build/

让 NuGet 自动导入文件,如此.targets“将 MSBuild 目标和道具文件导入项目”中所述。

现在到我的问题。我Task获取正在使用构建的项目文件的路径ProjectFileOfTaskNode。但是当在导入的文件中声明任务时,会返回.targets文件的路径。.targets

有没有办法获取导入.targets文件的项目文件的路径?

看起来好像有一种方法可以通过Microsoft.Build.BackEnd.TaskHost使用反射的一些非公共字段来获取信息。但如果有更开放的方式获得它,我宁愿避免这种情况。

0 投票
2 回答
188 浏览

c# - 如何防止不良项目引用?

我们使用带有 TFS 作为源代码控制和 CI 构建的 C# 项目。

我不断发现其他开发人员/Bin在应该使用我们的/Libs文件夹(我们保留第 3 方程序集的位置)时错误地从目录中引用程序集

如果有人这样做,作为解决方案构建或 CI 构建(我们也使用 powershell)的一部分,我可以做些什么来检查构建并使其失败?

0 投票
1 回答
208 浏览

c# - 如何在构建文件中引用 Azure SDK 工具?

我需要使用该Exec任务执行以下 Windows Azure SDK 工具:

在我的.build文件中引用此路径的最佳方法是什么?

直接参考,如下所示,它可能不适用于所有主机(构建服务器和开发机器):

(注意:我不想使用 CSPack 任务)

0 投票
1 回答
1959 浏览

c# - Running multiple exec tasks in parallel

I am batching multiple exec tasks in the build process. Each execution takes around one minute to complete, so I would like to run them in parallel to improve overall build performance.

The target that run multiple exec tasks:

The ItemGroup definition:

How do I run these exec tasks in parallel?

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 投票
1 回答
301 浏览

c# - MSBuild XAML-like DSL 到 Typescript 的编译

更新:似乎 C# 代码生成问题,我怀疑是出于同样的原因,实际上是一个 ReSharper 问题。但是 TypeScript 问题在 VM 内干净的 Visual Studio 上也仍然存在。


我基于我当前的目标文件将自定义 DSL 编译为 TypeScript 文件,部分基于用于 XAML 的内容和此 stackoverflow帖子中显示的 ANTLR 目标文件作为示例。

DSL 可以很好地编译为 typescript,最终组合的 .js 文件还包含 DSL 编译的代码。但智能感知似乎无法识别生成的 ts 文件 (*.g.ts)。

如果转换为 .cs 编译(而不是 .ts),如果项目中引用了同名的部分类,智能感知似乎也只会拾取生成的类。是因为目标文件中的错误还是智能感知无法拾取非部分生成的类?

使用的目标文件


附加信息:

我在测试项目中使用的构建任务目前不是很有趣,它只是让 DSL 文件(必须是包含有效标识符的单行)读取它并使用读取的名称生成一个类。

结果只是在 obj/[Debug|Release] 中生成了一个非常简单的 ts 文件(例如带有 DSL 内容“MySampleClass”)

0 投票
2 回答
186 浏览

c# - 跨不同程序集的 ASP.NET 可重用用户控件

我们目前正在开发几个 Web 项目,并希望能够创建一个包含跨 Web 项目共享的用户控件的项目,而不必重新创建它们。据我发现,整个过程很痛苦,因为每个项目都需要访问实际ascx文件,而不仅仅是对其的引用。

我的处理方法是:

1- 使用 Pre-Build 事件复制 .ascx 文件

从共享程序集到当前项目的工作文件夹。这适用于调试应用程序,但我们需要在文件系统发布期间做同样的事情。

2- 使用 MSBuild 目标在发布过程中复制 .ascx 文件

我在项目的配置文件中添加了以下目标:

(注意SourcePathTargetPath是目录的完整路径。我在这里替换了它们以使其更短)

此目标在文件系统发布后被调用(右键单击项目 -> 发布),但是,文件不会被复制到目标文件夹。

我已经确认目标被调用(通过更改Command=explorer.exe,弹出一个 Windows 资源管理器窗口)并且还xcopy.exe使用相同的确切路径运行命令CommandPrompt并且它确实工作正常。所以我不明白为什么它不能作为目标的一部分。有任何想法吗?