小编GGi*_*ard的帖子

如何将复杂的 DevOps 管道模板参数传递给脚本

在 Azure DevOps 管道模板中,我将参数声明为数组/序列

parameters:
  mySubscription: ''
  myArray: []

steps:
- AzureCLI@2
  inputs:
    azureSubscription: ${{ parameters.mySubscription }}
    scriptType: pscore
    scriptPath: $(Build.SourcesDirectory)/script.ps1
    arguments: '-MyYAMLArgument ${{ parameters.myArray }}'
Run Code Online (Sandbox Code Playgroud)

然后从管道定义传递参数的值作为

steps:
- template: myTemplate.yml
  parameters:
    mySubscription: 'azure-connection'
    myArray:
    - field1: 'a'
      field2: 'b'
    - field1: 'aa'
      field2: 'bb'
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法在 YAML 语法(某种ToString())中按原样传递该数组,以便能够在我的模板中从 PowerShell 使用和处理该数组。尝试运行此管道时,出现以下错误: /myTemplate.yml (Line: X, Col: X): Unable to convert from Array to String. Value: Array. 错误消息中引用的行/列对应arguments: '-MyYAMLArgument ${{ parameters.myArray }}'于我的模板。

我还尝试将参数映射为脚本的环境

- AzureCLI@2
  inputs:
    azureSubscription: ${{ …
Run Code Online (Sandbox Code Playgroud)

yaml azure-devops azure-pipelines azure-pipelines-yaml

8
推荐指数
3
解决办法
1万
查看次数

完整的 .Net 框架是否支持 msbuild /t:Pack?

根据文档https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets,看起来 msbuild 现在支持 NuGet 的 2 个特定目标:Pack和Restore. 我已经能够Restore正常使用,但不能Pack。

错误 MSB4057:项目中不存在目标“Pack”。

它支持传统的 .Net 项目还是仅支持 .Net Core?
我一直找不到任何文件清楚地说明它。

关于所需的依赖项,我正在使用

PM> nuget help
NuGet Version: 4.1.0.2450
usage: NuGet <command> [args] [options] 
Type 'NuGet help <command>' for help on a specific command.
Run Code Online (Sandbox Code Playgroud)

和

C:\Git>msbuild /version
Microsoft (R) Build Engine version 15.1.1012.6693
Copyright (C) Microsoft Corporation. All rights reserved.

15.1.1012.6693
Run Code Online (Sandbox Code Playgroud)

和

Microsoft Visual Studio Professional 2017 
Version 15.2 (26430.12) Release
VisualStudio.15.Release/15.2.0+26430.12
Microsoft .NET Framework
Version …
Run Code Online (Sandbox Code Playgroud)

msbuild nuget visual-studio-2017

4
推荐指数
1
解决办法
2466
查看次数