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

如何在ASP.NET MVC 5 WebJob项目中禁用预编译?

如何禁用ASP.NET WebJob项目的aspnet_merge编译?

要解决WebJob项目触发不必要的aspnet_merge并导致版本错误的问题,你可以通过修改WebJob项目的.csproj文件来禁用相关编译流程,具体操作如下:

方法1:通过项目属性禁用预编译与aspnet_merge

直接在WebJob项目的.csproj文件中添加以下配置,覆盖默认的MSBuild属性:

<PropertyGroup>
  <!-- 禁用视图编译(WebJob无.cshtml文件,无需此步骤) -->
  <MvcBuildViews>false</MvcBuildViews>
  <!-- 明确禁用aspnet_merge工具执行 -->
  <EnableAspNetMerge>false</EnableAspNetMerge>
  <!-- 彻底关闭发布前预编译流程(可选,进一步避免预编译相关操作) -->
  <PrecompileBeforePublish>false</PrecompileBeforePublish>
</PropertyGroup>

将这段代码插入到.csproj文件的任意<PropertyGroup>节点中(如果没有合适的节点,可自行新建一个)。

方法2:覆盖AspNetMerge目标(更彻底的禁用)

如果方法1未能完全阻止aspnet_merge运行,可以在.csproj文件末尾添加一个空的AspNetMerge目标,覆盖默认的目标逻辑:

<Target Name="AspNetMerge">
  <!-- 空目标,替代原有的AspNetMerge执行逻辑 -->
</Target>

原理说明

WebJob项目虽然没有UI文件,但如果继承了ASP.NET相关的MSBuild目标(比如通过NuGet包间接引入),会默认触发预编译流程,包括aspnet_merge。通过上述配置可以明确告知MSBuild跳过这些不必要的步骤,同时避免aspnet_merge因不识别绑定重定向而导致的版本查找错误。

修改完成后,重新构建解决方案,检查WebJob项目的构建日志,确认aspnet_merge不再执行,版本错误也会随之消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:34:58