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

.NET Core 3.1 Web API引用类库修改后dotnet watch run不自动重载问题

解决dotnet watch在类库修改时自动重载Web API的问题

嘿,这个场景我太熟悉了!默认情况下dotnet watch只会盯着当前Web API项目的文件变化,对于引用的类库项目,它可不会主动去监听。不过咱们只需要简单配置一下,就能让它在类库代码修改时自动触发重载。下面给你几个实用的方案:

方案1:修改launchSettings.json配置

打开Web API项目根目录下的Properties/launchSettings.json,找到对应的调试profile,添加watchFiles节点,把你需要监听的类库路径加进去。比如:

"profiles": {
  "MyWebApi": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "applicationUrl": "https://localhost:5001;http://localhost:5000",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    },
    "watchFiles": [
      "**/*.cs", // 监听当前Web API项目的所有cs文件
      "../ClassLibraryA/**/*.cs", // 监听第一个类库项目的所有cs文件
      "../ClassLibraryB/**/*.cs"  // 监听第二个类库项目的所有cs文件
    ]
  }
}

路径用相对路径就行,对应你类库项目在解决方案中的位置。

方案2:在Web API的.csproj中配置监听

如果不想改动launchSettings,也可以直接在Web API项目的.csproj文件里添加监听规则:

<ItemGroup>
  <!-- 监听当前项目的代码文件 -->
  <Watch Include="**/*.cs" />
  <!-- 逐个添加需要监听的类库路径 -->
  <Watch Include="../ClassLibraryA/**/*.cs" />
  <Watch Include="../ClassLibraryB/**/*.cs" />
</ItemGroup>

这个配置和方案1的效果是一样的,只是把规则写在了项目文件里。

方案3:给类库项目添加监听配置(更灵活)

如果你的Web API是通过项目引用关联类库的,这个方案会更省心——不用在Web API里逐个写类库路径。只需要在每个类库项目的.csproj中添加以下配置:

<ItemGroup>
  <Watch Include="**/*.cs" />
</ItemGroup>

这样当你在Web API项目中执行dotnet watch run时,它会自动识别所有引用的类库项目的监听配置,只要类库的代码有修改,就会触发重新编译和Web API的重载。

注意事项

  • 不管用哪个方案,修改配置后都需要重启dotnet watch run,新的监听规则才会生效。
  • 确保类库项目的修改确实会触发编译——如果类库没有被重新编译,Web API还是会使用旧的dll,重载也不会体现新的变更。

这样配置完之后,你修改类库代码保存时,dotnet watch就会自动检测到变化,重新编译类库并重启Web API,再也不用手动去保存Web API的文件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:57:51