azure-devops - 添加“未使用”的 VSTS 任务组参数
问题描述
我知道在任务中使用参数时会出现参数。问题是我也在发布配置文件中使用它们(Visual Studio Build -> MSBuld Arguments -> /p:PublishProfile
)并且没有直接在我的任务组中直接引用参数。
部分示例.pubxml
:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
[...]
<LastUsedBuildConfiguration>$(BuildConfiguration)</LastUsedBuildConfiguration>
[...]
<PrecompileBeforePublish>$(PrecompileBeforePublish)</PrecompileBeforePublish>
[...]
</PropertyGroup>
</Project>
$(BuildConfiguration)
替换为参数值,因为它在 Visual Studio Build 任务中使用(并在任务组中显示为参数),但$(ProcompileBeforePublish)
仅在发布配置文件中使用,并且根本无法在任务组中设置该值。
我尝试将参数添加到任务的标题中,但它没有出现在参数列表中。
我最终添加了一个“cmd”并回显了变量,但这看起来很乱 - 还有其他方法吗?
解决方案
添加“未使用”的 VSTS 任务组参数
当我遇到和你一样的问题时,我使用了和你类似的方法,我使用Inline Powershell
任务来Write-Output
参数。
这种方法虽然不是很优雅,但个人认为还是一种有效的方法。
众所周知,任务组参数是根据任务中使用的变量自动创建的。此行为是设计使然。因此,没有这样的选项/设置可以直接手动将那些“未使用”的参数添加到 VSTS 任务组参数中。
经过一段时间的调查,我找到了一个看起来更优雅的解决方案。我们创建一个不包含“未使用”参数的任务组,然后我们导出任务组并手动编辑 json 文件:
然后您可以使用 Visual Studio 打开下载的 json 文件,在 Visual Studio 中按 Ctrl+k Ctrl+D 格式化json
文件,格式化后您可以看到有一个名为 inputs 的部分,其中每个参数可用:
"inputs": [
{
"aliases": [],
"options": {},
"properties": {},
"name": "BuildConfiguration",
"label": "BuildConfiguration",
"defaultValue": "Debug",
"required": true,
"type": "string",
"helpMarkDown": "",
"groupName": ""
},
现在,我们可以模仿它来添加“未使用”参数$(PrecompileBeforePublish)
,例如:
"inputs": [
{
"aliases": [],
"options": {},
"properties": {},
"name": "BuildConfiguration",
"label": "BuildConfiguration",
"defaultValue": "Debug",
"required": true,
"type": "string",
"helpMarkDown": "",
"groupName": ""
},
{
"aliases": [],
"options": {},
"properties": {},
"name": "PrecompileBeforePublish",
"label": "PrecompileBeforePublish",
"defaultValue": "True",
"required": true,
"type": "string",
"helpMarkDown": "",
"groupName": ""
},
json
然后您必须在任务组中导入文件。不幸的是,这只会复制任务组,您将无法覆盖现有任务组,然后我们可以在新任务组中看到“未使用”参数:
这种方法看起来更优雅,但似乎效率不够。这就是为什么我说前面的方法不是很优雅的原因,个人认为它仍然是一个有效的方法。
如果它对您很重要,您可以提交您的功能请求,我们可以在建议功能站点上手动添加任务组参数:
希望这可以帮助。
推荐阅读
- node.js - 为什么我无法从 hasura 访问我机器的端口?
- cordova - 使用 cordova-plugin-ble-central 连接 BLE 而无需扫描
- mongoose - 尚未为模型“ModuleSchema”注册架构
- http - 如果我不断增加线程数,平均响应时间如何保持或多或少不变?
- kotlin - 从 gradle kts 中的 sourceSet 中的不同文件调用依赖项指令
- javascript - 根据带有加载更多按钮的自定义查询获取 WordPress 帖子
- c - 如何评估此代码中的后缀表达式?
- ssis - SSIS - 派生列用空字符串替换NULL值
- python - ModuleNotFoundError:没有名为“tokenize”的模块
- reactjs - 当用户访问未分派操作的页面时,反应应用程序崩溃