Azure devops 错误MSB4126:指定的解决方案配置“0”;释放“任何cpu”;无效

Azure devops 错误MSB4126:指定的解决方案配置“0”;释放“任何cpu”;无效,azure-devops,node-modules,devops,azure-pipelines,Azure Devops,Node Modules,Devops,Azure Pipelines,我已经为我的一个客户端应用程序设置了devops流。它的构建和发布级别都很好。但几天后,我的构建突然失败,出现以下错误 节点_modules\uws\build\binding.sln.metaproj(0,0):错误MSB4126:指定的解决方案配置“release | any cpu”无效。请使用配置和平台属性(例如MSBuild.exe solution.sln/p:configuration=Debug/p:Platform=“Any CPU”)指定有效的解决方案配置,或将这些属性留空以

我已经为我的一个客户端应用程序设置了devops流。它的构建和发布级别都很好。但几天后,我的构建突然失败,出现以下错误

节点_modules\uws\build\binding.sln.metaproj(0,0):错误MSB4126:指定的解决方案配置“release | any cpu”无效。请使用配置和平台属性(例如MSBuild.exe solution.sln/p:configuration=Debug/p:Platform=“Any CPU”)指定有效的解决方案配置,或将这些属性留空以使用默认的解决方案配置


有谁能告诉我如何解决这个问题吗?

我认为最好的选择是使用多个解决方案,将目标项目组放在一起(分区解决方案) 这里是获取更多信息的链接

我也在许多开源项目中实现了它,这里就是其中之一


您可以使用PowerShell任务来更改
.sln
文件

假设您要生成除网站项目以外的项目,则可以删除.sln文件的
GlobalSection
中的网站项目信息

先决条件:

获取要删除的项目ID,格式为
ECF93D95-5096-497E-B4B8-83416DABB516

然后在构建其他项目的构建任务之前添加PowerShell任务。脚本如下所示:

git checkout $(BUILD.SOURCEBRANCHNAME)
(get-content "$(Build.SourcesDirectory)\relative\path\to\solution") -notmatch "{project_ID}.$(BuildConfiguration)" | out-file "$(Build.SourcesDirectory)\relative\path\to\solution"
git reset --hard head
例如下面的示例,从
.sln
文件中删除项目
ECF93D95-5096-497E-B4B8-83416DABB516

git checkout $(BUILD.SOURCEBRANCHNAME)
(get-content "$(Build.SourcesDirectory)\ConsoleAppCore\ConsoleAppCore.sln") -notmatch "{ECF93D95-5096-497E-B4B8-83416DABB516}.$(BuildConfiguration)" | out-file "$(Build.SourcesDirectory)\ConsoleAppCore\ConsoleAppCore.sln"
在VS构建任务之后,您可以添加另一个PowerShell任务,以恢复更改后的
.sln
,与git repo中的相同版本。脚本如下所示:

git checkout $(BUILD.SOURCEBRANCHNAME)
(get-content "$(Build.SourcesDirectory)\relative\path\to\solution") -notmatch "{project_ID}.$(BuildConfiguration)" | out-file "$(Build.SourcesDirectory)\relative\path\to\solution"
git reset --hard head
对于构建除其他项目外的WebIT项目,可以使用相同的方法跳过该项目进行构建

注意:对于PowerShell任务,请取消选择标准错误失败选项


我曾经在使用
VSTS
时遇到过这个问题。我建议您直接使用
MSBuild
参数

要添加到
MSBuild
参数的Ho:

/p:Configuration=$(BuildConfiguration) /p:Platform="$(BuildPlatform)"

注意:将平台和配置留空

项目的类型是什么?是网站应用程序吗?@Marina,是的,它是一个Angualr2应用程序。如果你在VS Build任务中改为
***.publishproj
,而不是
***.sln
?@MarinaLiu MSFT,谢谢你帮了我很多忙,但我在VS Build任务中犯了错误,即我在VS Build任务中使用了***.sln,而不是使用了.sln(例如InnovationApp.sln)当然对于VS构建任务,您应该通过
path/to/name.sln
***.sln
指定解决方案。我使用
.sln
仅代表解决方案文件。目前,我在构建定义中使用了两个VS构建任务,一个用于Angular2应用程序,另一个用于整个解决方案文件。但是在第二个VS构建任务中,我面临着同样的问题,因为Angular2项目也包括在内。那么,你能告诉我如何在第二个VS构建任务中删除angular2项目吗?创建不包含angular2项目的新解决方案是一个生产应用程序,所以我现在不能单独执行。事实上,相同的解决方案将一直持续到昨天,但从昨天开始就面临问题。我尝试了上述解决方案,但得到的错误类似于“[错误]切换到新的分支“集成”分支集成设置,以跟踪来自源站的远程分支集成。[错误]进程已完成,退出代码为0,出现1个错误”写入错误流。##[部分]完成:用于删除角度项目的PowerShell脚本“抱歉提醒和延迟。您应该在Powershell任务中取消选择标准错误失败选项。您可以再试一次。@pradeep是否跳过以成功构建项目?很抱歉,响应延迟。谢谢@Marina,通过看到你的最新答案,我解决了我的问题。