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

Visual Studio 2019中向ASP.NET Core 2.2 WebApp添加现有WebJob项目遇问题

解决ASP.NET Core 2.2 WebApp添加现有WebJob项目的选项问题

我之前也碰到过类似的棘手情况,ASP.NET Core 2.2在WebJobs集成这块确实有不少兼容性小细节需要注意,给你几个经过验证的解决办法:

1. 先确认WebJob项目的兼容性

首先得确保你的WebJob项目符合要求:

  • 如果是连续运行的WebJob,推荐使用.NET Framework项目(ASP.NET Core 2.2对Core类型的连续WebJob支持有限);触发式WebJob则可以用Core项目,但要保证WebJobs SDK版本和WebApp的.NET版本匹配(比如WebJobs SDK 3.x对应.NET Core 2.x+)。
  • 检查WebJob项目是否正确引用了Microsoft.Azure.WebJobs和Microsoft.Azure.WebJobs.Extensions包,版本不要太旧。

2. 手动关联WebJob(最可靠的方法)

如果可视化选项找不到或失效,直接修改项目文件来关联是最稳妥的:

步骤1:配置WebApp的.csproj

打开你的ASP.NET Core 2.2 WebApp的.csproj文件,在<Project>节点内添加以下配置(根据你的WebJob类型调整):

<!-- 连续型WebJob -->
<ItemGroup>
  <None Update="App_Data\jobs\continuous\MyWebJob\**">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

<!-- 触发型WebJob -->
<ItemGroup>
  <None Update="App_Data\jobs\triggered\MyWebJob\**">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </None>
</ItemGroup>

把MyWebJob替换成你的WebJob项目名称。

步骤2:配置WebJob的输出路径

打开WebJob项目的.csproj,修改<OutputPath>属性,让它编译到WebApp的对应目录:

<PropertyGroup>
  <!-- 连续型WebJob的输出路径 -->
  <OutputPath>..\MyWebApp\App_Data\jobs\continuous\MyWebJob</OutputPath>
  <!-- 触发型则改成 -->
  <!-- <OutputPath>..\MyWebApp\App_Data\jobs\triggered\MyWebJob</OutputPath> -->
</PropertyGroup>

这里的MyWebApp替换成你的WebApp项目名称。这样每次编译WebJob,文件都会自动同步到WebApp的目录,部署时就能一起上传到Azure。

3. 修复Visual Studio的选项显示问题

有时候VS的缓存或配置异常会导致选项消失,试试这些操作:

  • 关闭VS,删除解决方案根目录下的.vs隐藏文件夹,然后重新打开解决方案。
  • 重置VS用户设置:点击工具 > 导入和导出设置 > 重置所有设置,选择你常用的配置文件重置。
  • 检查Azure开发工具:打开Visual Studio Installer,确保“Azure开发”工作负载已安装并更新到最新版本。

4. 关于点击选项报错的说明

你提到点击“添加>现有项目作为Azure WebJobs”报错,大概率是因为你选错了项目!这个选项是要选择WebJob项目,而不是你的ASP.NET Core WebApp项目。错误操作后VS可能缓存了异常状态,导致选项不再显示,按照上面的缓存清理步骤操作后,重新选择正确的WebJob项目就能正常使用了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:12:28