问题标签 [msbuild-task]

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 投票
3 回答
2614 浏览

msbuild - MSBuild CopyTask:将同一个文件复制到多个位置

有没有办法让 CopyTask 将同一个文件复制到多个位置?

例如。我已经生成了一个 AssemblyInfo.cs 文件,并希望在构建之前将其复制到我的所有项目中。

0 投票
1 回答
2000 浏览

msbuild - 在 MsBuild 中声明动态配置文件路径

目前我正在尝试将文件复制到用户配置文件中的某个位置,但是在声明动态配置文件名称时遇到了问题,例如:

声明动态用户配置文件名称的语法是什么?我是否必须从某个地方获取配置文件名称,或者是否有另一个 MsBuild 任务可以为我找到它?

谢谢。

0 投票
3 回答
1029 浏览

command-line - 读取/捕获 DOS 输入以在 MsBuild 中使用

如何捕获/读取 DOS 输入以在 MsBuild 中使用?

为澄清而编辑

目前我有2个文件。一个批处理文件,另一个是包含 msbuild 内容的 core.msbuild 文件。我希望能够从 Windows 命令提示符(执行构建文件时)捕获额外的用户输入,例如输出目录,并将其发送到 msbuild 文件(并将其设置为 PropertyGroup)。%1 已被占用,所以我正在考虑使用 %2。

如下所示:

param2 是我试图捕捉并执行上述操作的那个。

谢谢。

0 投票
2 回答
935 浏览

msbuild - MSBuild ITaskItem RecursiveDir 元数据消失

我有一个自定义 MSBuild 任务,它处理一组文件并返回其中的修改子集。基本上,我只是从输入中创建一个新的 ITaskItem 数组,跳过一些项目。

但是,当此结果集返回到 MSBuild 时,RecursiveDir 元数据会消失!在我的自定义任务的 Execute() 方法结束时它仍然具有正确的值,但是当我尝试在 MSBuild 中使用 RecursiveDir 时,我发现它是空的!这当然是个大问题!

我应该怎么办?这是正常的吗?文件名和扩展名等其他元数据仍然存在。身份也指向正确的文件。我不会在我的自定义任务中以任何方式修改元数据。

我已经看到其他 MSBuild 任务库也返回 ITaskItem 数组而无需任何特殊处理。然而没有人遇到这个问题?奇怪!

我正在使用 MSBuild 3.5。

0 投票
1 回答
797 浏览

msbuild - MsBuild - 是否可以隔离批处理任务,因此一个失败的任务不会跳过剩余的任务?

让我从例子开始......我有一个 all.proj,看起来类似于:

如果其中一项任务失败,它将退出目标。有没有办法只打印错误并继续执行剩余的任务?

ContinueOnError 不是一个选项,因为它只会将错误转换为警告。我希望构建最终失败,但我也希望获得尽可能多的错误信息,因此即使其中一些站点失败,我仍然需要编译所有站点。

0 投票
4 回答
7831 浏览

date - msbuild脚本中的日期格式?

在我的 msbuild 脚本中,我在 zip 文件名中创建了一个带有年/月/日的 zip 文件,但月份和日期总是不带前导零。

有没有办法在我的 zip 文件名中添加前导零?

结果是:'Application_2010122.zip'(一月没有前导零,如您所见)

0 投票
2 回答
563 浏览

msbuild-task - Cruise Control.net Ms 构建任务设置 XML 输出名称

我们正在运行 CruiseControl.net 的 1.5.6755.1 版本。这是我们执行构建的块

当此运行时,它会生成一个名称为 ..

msbuild-results-5cb1c8fa-1bba-4e97-a0b1-b2bf637308dc.xml

MsBuild 任务上是否还有另一个标签允许我命名 xml 文件?Logger 是否有一个参数允许我指定 xml 文件的名称?

0 投票
2 回答
5923 浏览

entity-framework - 使用 MSBuild 构建实体框架模型而不使用项目文件?

我正在为一个相当大的项目构建脚本。其中一个项目需要将实体框架模型编译到库中。由于构建服务器的工作方式,所有构建都是手工制作的,以管理各种部署场景,而不会影响开发人员和项目文件。

有没有使用 MSBuild 任务生成 EF 模型而不使用 Visual Studio 生成的项目文件?当前,实际程序集使用 CSC 任务进行编译,但实际部署的应用程序失败,因为 EF 模型未包含在编译的程序集中。

任何指向哪些目标或构建任务可用于生成模型并创建所需资源以嵌入到程序集中的指针?

请注意

该项目在 Visual Studio 中编译得很好,但是不能在构建服务器上使用项目文件,因为在部署时需要对项目进行各种更改,这可以通过外部的自定义构建脚本进行控制开发团队控制。这对一些项目来说是成功的,但是 EF 模型在这个特定的场景中引起了一些麻烦。

更新

当前的解决方案并不理想,但有效。已修改项目文件以将 EF 模型资源复制到新版本构建的项目中的文件夹中,然后将其签入源代码控制。当构建脚本在服务器上运行时,EF 模型将嵌入到程序集中。目前这似乎是一个可行的解决方法。

0 投票
2 回答
987 浏览

windows - 如何确定 MSBuild 中的当前操作系统版本?

是否有可返回当前操作系统版本的本机或自定义 MSBuild 任务?是否有可以通过 Exec 任务调用的二进制文件?还是有其他选择?

编辑:彼得朗建议以下链接: http: //www.paraesthesia.com/archive/2009/07/06/getting-the-windows-os-version-in-msbuild.aspx

0 投票
4 回答
10995 浏览

msbuild - 在 MSBuild 中确定 ProjectReference 的输出而不触发冗余重建

作为包含许多项目的解决方案的一部分,我有一个引用的项目(通过<ProjectReference>解决方案中的其他三个项目,以及其他一些项目)。在 中AfterBuild,我需要将 3 个特定依赖项目的输出复制到另一个位置。

通过各种 SO 答案等,我决定完成的方式是:

但是,我遇到了这个问题。该<MSBuild步骤的IncrementalClean任务最终删除了ProjectC. 在 VS2008 下运行此程序时,如果项目包含此目标,则如果我在整个解决方案上进行构建,则将build.force文件存放在 ProjectC 的obj/Debug文件夹中,然后触发 ProjectC 重新构建AfterBuild,而如果从构建中排除此项目,则 [正确] 不会触发 ProjectC 的重建(关键是 ProjectC 的所有依赖项的重建)。在这种情况下,这可能是特定于 VS 的诡计,不会在 TeamBuild 或其他命令行 MSBuild 调用的上下文中发生(但最常见的用法是通过 VS,因此我需要以任何一种方式解决此问题)

依赖项目(以及一般的解决方案的其余部分)都是用 VS 交互创建的,因此ProjectRefences 包含相对路径等。我已经看到提到这可能会导致问题 - 但没有完整解释原因,或者何时修复或如何解决它。换句话说,我对例如ProjectReference通过手动编辑.csproj 将路径转换为绝对路径并不感兴趣。

虽然完全有可能我在做一些愚蠢的事情,并且有人会立即指出它是什么(这会很棒),但请放心,我已经花了很多时间研究/v:diag输出等(尽管我没有尝试从从头开始 - 这是在相对复杂的整体构建的背景下)