You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VSTS从多项目解决方案部署Azure Functions应用构建报错求助

解决MSBuild报错“only one project can be specified”的问题

针对你在VSTS在线构建中遇到的这个问题,我整理了几个关键的排查和解决步骤:

1. 修正MSBuild参数的格式

你之前用的t:/SomeApp_Func和t:/SomeApp.Func是错误的格式,正确的参数前缀是正斜杠+冒号(/t:)。如果是要构建指定项目的Build目标,正确的写法应该是:

/t:SomeApp.Func:Build

这里的SomeApp.Func是解决方案中你的Functions项目的项目名称(要和解决方案里显示的完全一致,包括句点),:Build指定要执行的构建目标(如果省略,默认也是Build,但加上更明确)。

2. 避免重复指定项目/解决方案

报错的核心原因通常是MSBuild同时收到了多个项目/解决方案的输入:

  • 如果你的MSBuild任务的Project字段已经填了解决方案文件(比如YourSolution.sln),那么只需要在参数里加上面的/t:SomeApp.Func:Build即可,不要在参数里再写项目路径。
  • 如果你想直接构建单个项目,更简单的方式是在Project字段里直接填写SomeApp.Func.csproj的完整相对路径(比如src/SomeApp.Func/SomeApp.Func.csproj),这时候不需要额外的/t:参数,MSBuild会直接构建这个项目。

3. 检查项目名称的准确性

有时候解决方案里的项目名称和文件夹/文件名不完全一致,你可以打开解决方案文件(.sln)查看项目的定义,比如:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SomeApp.Func", "src/SomeApp.Func/SomeApp.Func.csproj", "{12345678-1234-1234-1234-1234567890AB}"
EndProject

这里第一个引号里的SomeApp.Func就是你需要在/t:参数里使用的项目名称,必须完全匹配。

4. 附加参数优化(可选)

如果构建时遇到项目引用的问题,可以加上/p:BuildProjectReferences=false参数,避免构建该项目的依赖项(如果不需要的话),完整参数示例:

/t:SomeApp.Func:Build /p:BuildProjectReferences=false

按照这些步骤调整后,应该就能解决这个报错了。

内容的提问来源于stack exchange,提问作者Shyamal Parikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:36:09