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

更新后dotnet watch publish命令失效,被当作dotnet run执行的问题

解决dotnet watch publish触发dotnet run报错的问题

问题原因

你的项目OutputType是Library(类库),dotnet watch的默认逻辑会优先尝试启动可执行项目,当检测到项目为类库时,即便指定了publish命令,也会 fallback 执行dotnet run,最终导致报错。

解决方案

  • 若项目是类库(无需运行):
    类库项目本身不需要通过dotnet run启动,要监听文件变化自动发布,可换用msbuild命令触发:

    dotnet watch msbuild /t:Publish /p:Project=Client/ /p:Configuration=Release
    

    或者在项目的csproj文件中添加自定义监听目标:

    <Target Name="WatchPublish">
      <Watch Include="**/*.cs" />
      <MSBuild Targets="Publish" Properties="Configuration=Release" />
    </Target>
    

    之后执行:

    dotnet watch run --project Client/ WatchPublish
    
  • 若项目应为可执行类型(如Web/控制台):
    打开Client项目的csproj文件,修改OutputType为Exe,并确认TargetFramework是可运行的版本(如net6.0、net7.0等):

    <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>net6.0</TargetFramework>
    </PropertyGroup>
    

    修改完成后再执行原命令,即可正常触发watch publish。

  • 检查命令路径准确性:
    确保--project参数指向正确的项目文件,若Client文件夹下存在多个csproj,需指定具体文件名:

    dotnet watch publish --project Client/Client.csproj --configuration Release
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:52:07