VSTS多项目解决方案中发布错误项目问题求助
解决VSTS发布错误ASP.NET Core项目的问题
你遇到的这个问题在VSTS(如今的Azure DevOps Services)部署ASP.NET Core解决方案时挺常见的,我给你几个实用的排查和解决步骤:
1. 精准配置构建任务的目标项目
首先检查你的构建定义,不管是用DotNet Publish还是MSBuild任务,一定要明确指定要发布的项目:
- 在任务的**Project(s)**字段里,不要只填项目名称
WebApp.Web.Mvc,而是填写项目文件的相对路径,比如**/WebApp.Web.Mvc.csproj(用通配符确保能准确定位到项目文件)。 - 如果是用
MSBuild,还可以在MSBuild arguments里添加参数:/p:DeployOnBuild=true /p:PublishProfile=YourProfile /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true,同时确保这里的目标项目指向WebApp.Web.Mvc。
2. 修正发布任务的包路径
到发布定义的IIS Web App Deploy任务里,确认Package or folder的路径是WebApp.Web.Mvc的构建输出:
- 正确的路径应该类似
$(System.DefaultWorkingDirectory)/YourBuildArtifactName/**/WebApp.Web.Mvc.zip,或者指向该项目publish文件夹的路径,避免指向整个解决方案的输出目录,这样就不会误选到其他项目的包。
3. 排除不需要部署的项目
如果上面的配置都没问题,可以直接在构建过程中排除WebApp.Application.Shared:
- 在构建任务的MSBuild arguments里加上:
/p:ExcludeProjects=WebApp.Application.Shared,这样构建时就不会处理这个项目的发布流程。 - 也可以在解决方案里调整项目属性:右键WebApp.Application.Shared项目→属性→生成,取消勾选对应发布配置(比如Release)下的部署选项(如果存在的话)。
4. 检查变量参数的正确性
你之前尝试添加的Project变量,可能是因为格式不对没生效:
- 在构建定义的变量选项卡中,把
Project变量的值设为**/WebApp.Web.Mvc.csproj,然后在构建任务的**Project(s)**字段中引用这个变量(比如$(Project)),确保变量能正确传递到构建过程中。
我建议你先从第一步开始排查,很多时候都是因为构建任务没明确指定目标项目,导致VSTS默认选了列表里的第一个项目(哪怕你调整了名称顺序,有时候构建引擎还是会按项目文件的加载顺序来)。
内容的提问来源于stack exchange,提问作者Bart B
相关产品推荐
相关产品推荐

