问题标签 [custom-build-step]

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

powershell - 自定义构建变量

My Company 使用基于 Powershell 脚本的自定义构建步骤。

我现在的任务是验证是否可以将这些脚本中的变量“导出”到 tfs 本身中可用的全局构建变量?有点像$env:build_Myvairable(在脚本中)/ $(build.myvariable)(在 Tfs 上)。

0 投票
2 回答
82 浏览

visual-studio - Visual Studio 中的累积自定义生成步骤

是否可以在 Visual Studio 中进行累积自定义构建步骤?

我想做的是有一个

作为所有配置的自定义步骤(当前和可能的未来配置)

但是对于一个特定的配置(比如Deploy)我想另外这样做

这可能吗?我曾尝试使用xcopy命令在Deploy中添加属性表,但所有配置的“自定义构建步骤”属性(使用mkdir命令)似乎完全掩盖了xcopy

0 投票
1 回答
477 浏览

c# - Visual Studio,在构建时将解决方案复制到文件夹

我正在寻找一种方法来添加一个额外的构建步骤,它将为我的整个解决方案创建一个备份副本。只有当解决方案中的文件或整个解决方案本身不存在于目标文件夹或闪存驱动器目录中时,我才希望它这样做。实现这一目标的最简单方法是什么?最好我只希望在文件被视为“较新”的情况下发生这种情况,并且如果文件自上次备份以来没有更改,则避免复制和替换。

0 投票
0 回答
88 浏览

visual-c++ - VisualStudio 2015 中的行为 MSBuild 与控制台中的 MSBuild 不同

影响:Visual Studio 2015 中的 Visual C++

当我在 VS-Solution 中开始构建我的项目时,它会编译所有项目的源文件。如果我再做一次并且没有任何改变,则构建是最新的。但是,如果我从控制台构建,例如:

...源将再次编译。(通过在控制台中再次构建,构建也是最新的。在 VS 中的控制台构建之后构建时,构建会编译所有项目的源文件。)

我注意到我的 VS 版本(14.0.25425.01)与显示的控制台输出(14.0.25420.1)不同,所以我添加了/p:VisualStudioVersion=14.0.25425.01-Parameter。但这什么也没做(即使控制台的输出仍然是Microsoft (R)-Buildmodul, Version 14.0.25420.1)。也许这可能是问题所在?但是,如果,我该如何解决?

我还通过 Windows 任务管理器注意到,由 Visual Studio 启动的MSBuild.exe -Runtime 将处于活动状态,直到退出 VS。(在我的控制台中,MSBuild.exe -runtime 在构建完成后结束。)

我注意到的另一个奇怪的事情是,在我的控制台中,有时MSBuild.exeC:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE(一如既往地从 Visual Studio)启动,有时MSBuild.exe是从C:\Program Files (x86)\MSBuild\14.0\Bin开始。通过比较这些文件,它们是相同的。

0 投票
1 回答
693 浏览

c++ - 如何设置此 Visual Studio (2015) 自定义构建步骤(工具?)。基本上我想要一个修改头文件的预处理器步骤(c++)

我想要运行一个查看 .h 文件的构建步骤,根据一些外部参数添加一些代码,并将生成的文件交给预处理器。

我在项目属性中看到“自定义构建步骤”。它似乎需要一个输出文件。我只想将结果转发给预处理器。

似乎自定义构建步骤想要执行 1 次过程,而不是按文件或按文件类型。

问题是我不知道如何向我的外部可执行文件发送当前正在处理的文件(例如,“HelloWorld.cpp”)。$(InputName) 和 %(Filename) 是空白的,文档说它已被弃用。如何将文件名发送到我的外部可执行文件?

但即使我得到了这个工作,我也不想为每个文件设置这个。我希望所有头文件都经过这个过程。

有任何想法吗?

我看过:

https://msdn.microsoft.com/en-us/library/dd293663.aspx?f=255&MSPPError=-2147217396

https://msdn.microsoft.com/en-us/library/hefydhhy(v=vs.90).aspx

https://msdn.microsoft.com/en-us/library/ff770593(v=vs.140).aspx

在 Windows 上进行调试,x64 配置。

0 投票
1 回答
1032 浏览

powershell - TFS 2018 - 具有布尔参数的自定义构建任务

我为 TFS 2018 创建了一个自定义构建任务及其扩展。我的两个参数是布尔值。在 task.json 上,我将默认值设置为 false。当我使用任务执行构建定义时,出现以下错误:

System.Management.Automation.ParameterBindingArgumentTransformationException:无法处理参数“isToDeploy”的参数转换。无法将值“System.String”转换为类型“System.Boolean”。布尔参数仅接受布尔值和数字,例如 $True、$False、1 或 0。---> System.Management.Automation.ArgumentTransformationMetadataException:无法将值“System.String”转换为类型“System.Boolean”。布尔参数仅接受布尔值和数字,例如 $True、$False、1 或 0。---> System.Management.Automation.PSInvalidCastException:无法将值“System.String”转换为类型“System.Boolean”。布尔参数仅接受布尔值和数字,例如 $True、$False、1 或 0。

这是我的powershell

这是我的 Task.json(输入部分)(忽略 ???,因为此任务仍在开发中)

就像错误消息说的那样,我已经尝试在 Task.json 中将布尔值更改为 $False、0 甚至“false”。我还尝试将类型更改为 bool,甚至将 json 和 powershell 中的参数更改为字符串,然后在 powershell 中将值转换为布尔值。我所有的尝试都以同样的错误告终。

更奇怪的一件事是,我已经从 powershell 和 json 中删除了布尔值,但我得到了同样的错误……这根本没有意义,让我怀疑我是否遇到了一些缓存问题或其他问题。(是的,我在某些时间之间重新启动了机器)。

==编辑==

发生上述奇怪行为是因为我没有更新 task.json 和 vss-extension.json id。需要在每次尝试之间进行。

==结束编辑==

我“更新”我的海关任务的方式是,我只需删除构建定义中的任务,从集合中删除扩展并从 TFS 卸载它,然后我再次安装所有内容。

测试的组合

  • 布尔和假
  • 布尔值和 0
  • 布尔值和“假”
  • 布尔值和 $False
  • 布尔值和“$False”
  • 布尔值和“$false”
  • 布尔值和 $false
  • 布尔和 0
0 投票
1 回答
517 浏览

c++ - VS2013 C++ 自定义构建工具不起作用

对于冗长的文字,我深表歉意,但我在使用 VS2013 中用于 C++ 项目的自定义构建工具功能时遇到了一些麻烦。我想获取一个项目的“resource.h”文件并生成一个输出文件,出于这些目的,我们将其称为“resource.out”。

我编写了一个带有两个命令行参数的工具——“resource.h”文件和“resource.out”文件。我首先在一个简单的应用程序向导生成的文档/视图应用程序 MFCApplication1 上进行了尝试。我将文件“resource.x”添加为虚拟文件,以便使用自定义构建工具“编译”。在该特定文件上,我将“项目类型”设置为“自定义构建工具”,并且在配置工具时,我有以下内容:

这行得通。当我构建 MFCApplication1 时,我在输出窗口中看到以下内容:

第二行是我的自定义构建工具的输出。所以在这个简单的测试中,一切都如我所料。

现在我在我的真实代码上尝试同样的事情。我有一个包含多个项目的解决方案,一个项目负责获取另一个项目的资源并生成一个 dll。目录结构如下所示:

所以 MainRes 项目引用了 MainApp 项目中的资源文件。在 MFCApplication1 实验中取得成功后,我将“resource.x”添加到主应用程序中,并在 MainRes 中引用它:

在 MainRes 项目中,我选择了“resource.x”并通过上下文属性,将其“项目类型”设置为“自定义构建工具”,并将其配置为:

现在,当我尝试在 MainRes 中编译“resource.x”时,我收到以下警告(警告 MSB8018:没有为项目“..\MainApp\resource.x”指定输出):

所以我认为这可能是一个上下文问题并将配置更改为:

我得到同样的警告。我不明白我在这里做错了什么。我将“输出”设置为文件,并且在命令行中有输出文件。在此先感谢任何人对此的帮助。我已经在这上面花了太多时间了...

  • 史蒂夫
0 投票
1 回答
142 浏览

jenkins - Jenkins 配置到 DSL 代码转换

我正在尝试为 jenkins 作业编写相应的 dsl 代码,但我被困在 Build 步骤,不知道如何通过 SSH 编写 Send Files 或 Execute commands 的代码。

我已经尝试过XML 到 DSL 转换器插件,但它也排除了这一部分。

有人可以帮忙吗?

构建步骤

0 投票
1 回答
618 浏览

git - 在 VSTS / Azure DevOps 中推送时将定义镜像存储库构建到外部 git 存储库

如标题所示,我在 VSTS/Azure DevOps 中进行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。我的 realease 或 master 分支。我已经从市场上尝试了几个插件,但似乎没有一个能满足我的需求。我有几个先决条件:

  • 我的外部 git 在端口 33 后面
  • 我的外部 git 只接受 SSH 密钥作为身份验证,因此我需要将 SSH 私钥存储在某个地方以便能够推送到外部源。

由于内置镜像功能,我也尝试过 Gitlab,但不幸的是,它不接受端口 33,只有 22 和其他标准端口:-(

非常感谢您!

0 投票
0 回答
223 浏览

c# - 始终在 Visual Studio 中运行自定义生成事件(不使用 VC++)

我如何始终在 Visual Studio 2015 中运行自定义脚本,即使没有任何改变......但是在没有安装 VS++ 的情况下使用 VS?

我实际上想对这个问题做同样的事情,但是,我安装的 Visual Studio 2015 没有安装VC++(因为我们所做的一切都是 C# 或 VB.Net),所以我无权访问相同的项目属性页面。

使用接受的答案作为起点,本文以获取更多详细信息,我已将以下内容添加到我的项目文件中,但除非项目中的文件已更改,否则我根本无法让它运行自定义脚本......

我已经做了很多寻找价值的工作<CustomBuildAfterTargets><CustomBuildBeforeTargets>但我找不到任何官方的或其他的东西。MS 文章没有提供有关可能值的详细信息,这非常令人沮丧。

我也尝试<DisableFastUpToDateCheck>根据答案之一添加属性,但这仍然会重建项目,所以这不是我想要的。