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

迁移至SDK后,如何通过csproj文件实现Azure WebJobs的Azure DevOps部署?

简便方案:通过csproj配置托管Azure WebJobs的Web App并兼容Azure DevOps WebPublish

核心方案:在Web App的csproj中添加文件复制规则

替代原有的webjobs-list.json和webjob-publish-settings.json,直接在Web App项目的csproj文件中加入以下配置,就能自动生成WebPublish所需的bin\App_Data\jobs\triggered\MyWebJob目录结构:

<!-- 引用WebJob项目,避免默认程序集引用,改为内容输出 -->
<ItemGroup>
  <ProjectReference Include="..\MyWebJob\MyWebJob.csproj">
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    <OutputItemType>Content</OutputItemType>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </ProjectReference>
</ItemGroup>

<!-- 构建完成后复制WebJob编译产物到目标目录 -->
<Target Name="CopyWebJobAssets" AfterTargets="Build">
  <Copy 
    SourceFiles="..\MyWebJob\bin\$(Configuration)\$(TargetFramework)\*" 
    DestinationFolder="$(OutputPath)\App_Data\jobs\triggered\MyWebJob\" 
    SkipUnchangedFiles="true"
    OverwriteReadOnlyFiles="true" />
</Target>

配置说明

  • 替换..\MyWebJob\MyWebJob.csproj为你的WebJob项目实际路径
  • $(TargetFramework)会自动匹配项目的目标框架(比如net6.0、net7.0),无需硬编码
  • 如果是连续触发型WebJob,把路径中的triggered替换为continuous即可

部署验证

  1. 本地构建Web App项目后,检查bin\$(Configuration)\$(TargetFramework)\App_Data\jobs\triggered\MyWebJob目录,确认包含WebJob的可执行文件、配置文件等所有必要产物
  2. 在Azure DevOps中使用AzureWebApp@1任务部署时,直接指定Web App项目的输出目录作为部署源,WebPublish会自动将包含WebJob结构的整个目录部署到Azure Web App,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:26:00