我为我的一个客户端应用程序设置了devops流程。它在构建和发布级别上都很好。但是几天后突然我的构建失败,出现以下错误。
node_modules \ uws \ build \ binding.sln.metaproj(0,0):错误MSB4126:指定的解决方案配置" release | any cpu"是无效的。请使用Configuration和Platform属性指定有效的解决方案配置(例如MSBuild.exe Solution.sln / p:Configuration = Debug / p:Platform =" Any CPU")或将这些属性留空以使用默认值解决方案配置。
有谁能告诉我如何解决这个问题?
答案 0 :(得分:1)
您可以使用 PowerShell任务来更改.sln
文件。
假设您想要构建除网站项目之外的项目,那么您可以删除.sln文件的GlobalSection
中的网站项目信息。
先决条件:
获取要删除的项目ID,格式为ECF93D95-5096-497E-B4B8-83416DABB516
。
然后在 VS构建任务之前添加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"
以下示例从ECF93D95-5096-497E-B4B8-83416DABB516
文件中删除项目.sln
:
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 Build任务之后,您可以添加另一个PowerShell任务来恢复已更改的.sln
作为git repo中的相同版本。脚本为:
git reset --hard head
对于构建除其他项目之外的websit项目,您可以使用相同的方式跳过要构建的项目。
注意:对于PowerShell任务,请取消选择标准错误选项失败。
答案 1 :(得分:0)
我认为最好的选择是使用多个目标组合的解决方案(分区解决方案) 这是获取更多信息的链接
我也在许多开源项目中实现,其中一个是
答案 2 :(得分:0)
我在使用VSTS
时遇到了这个问题。我建议您直接使用MSBuild
个参数
何添加到MSBuild
参数中:
/p:Configuration=$(BuildConfiguration) /p:Platform="$(BuildPlatform)"
注意:将平台和配置留空