0

我是 Azure 的新手,我继承了一个由不再在公司工作的其他人构建的管道。它在很多方面都被破坏了,所以我正在尝试根据给我的原始破坏者构建一个新的。我一次执行一个命令来解决问题。目前以下任务失败:

- task: VSBuild@1
    displayName: Build Solution
    inputs:
      solution: $(BuildParameters.solution)
      msbuildArgs: /p:DeployOnBuild=true /p:WebPublishingMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\$(BuildConfiguration)\\"
      platform: $(BuildPlatform)
      configuration: $(BuildConfiguration)

我研究了其他类似的堆栈溢出帖子,但仍然无法弄清楚问题所在。我收到的警告是这样的:

Warning MSB4126: The specified solution configuration "$(BuildConfiguration)|$(BuildPlatform)" is invalid. Please specify a valid solution configuration using the Configuration and Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the default solution configuration.

这是我到目前为止所尝试的:

  1. 我尝试删除平台和配置设置(上面第一个引用代码的最后两行)。这导致了 54 个其他警告,所以这似乎是个坏主意。

  2. 接下来,我将已删除的这两行放回原处,而是在 msbuildArgs 设置中列出的参数字符串的开头添加了以下内容:/p:Configuration=Debug /p:Platform="Any CPU"。这摆脱了 54 个新警告并带回了原始错误(换句话说,它没有效果)

还有这个其他堆栈溢出问题:TFS Build error MSB4126 (solution configuration is invalid) how to fix似乎有一个解决方案,但是我不知道如何实际应用这个解决方案。该票证中有 Azure UI 的屏幕截图,我什至不知道如何访问 Azure 的该页面以查看这些选项。我的猜测是这个人没有使用 yaml 文件来设置管道并以旧方式进行操作,但我不想以这种方式配置它,因为我希望让 yaml 文件定义管道并将其存储在我的 git 仓库中。

注意:我也一直在查看与该项目关联的 sln 文件以试图理解它,我想我不确定该文件的基本概念......

任何建议都会有所帮助,谢谢

4

2 回答 2

2

看起来没有定义两个变量:

$(BuildConfiguration)
$(BuildPlatform)

确保在管道 yaml 或变量选项卡中定义了变量。

看:

将值设置为对解决方案有意义的值。我们无法猜测这些值,因为它们通常特定于正在构建的解决方案。

于 2021-02-18T19:44:46.170 回答
0

这里的步骤: -

  1. 转到已在其中创建管道的 Azure Devops Pipeline。
  2. 单击编辑管道,使用对您创建的每个管道可见的 3 个点。
  3. 现在单击变量。
  4. 将 BuildConfiguration 和 BuildPlatform 留空(它将根据您在代码中的配置自动选择)。
  5. 保存并运行队列。

注意:- 这只有在您通过经典方法而不是 YAML 创建管道时才有帮助。我无法添加图像,因为它至少需要 10 分。一旦我得到这些点,就会为每个步骤添加图像。

于 2022-02-11T15:15:01.367 回答