dotnet watch run命令中的取消路径无效

时间:2019-01-18 13:59:26

标签: c# asp.net-core .net-core

要使用指定的绝对路径运行dotnet核心应用程序,我们需要运行以下命令:

dotnet run -p C:\foo\bar\Project\Project.csproj

但是似乎与dotnet watch run并不相同:

watch : Could not find a MSBuild project file in 'C:\directory\where\we\execute\command'. Specify which project to use with the --project option.

使用-project而不是-p运行同一命令无济于事...

  

Dotnet监视帮助始终指定-p-project参数:

     

Microsoft DotNet File Watcher 2.1.1-rtm-30846

     

用法:dotnet监视[选项] [[-] ...]

     

选项:-?| -h | --help显示帮助信息
  -p | --project要监视的项目-q | --quiet禁止显示所有输出,但警告和错误除外-v | --verbose
  显示详细输出--list列出所有发现的   文件不启动观察程序--version显示   版本信息

     

环境变量:

     

DOTNET_USE_POLLING_FILE_WATCHER设置为“ 1”或“ true”时,   dotnet-watch将轮询文件系统的更改。这是必需的   对于某些文件系统,例如网络共享,Docker已安装   卷和其他虚拟文件系统。

     

DOTNET_WATCH dotnet-watch在所有子项上将此变量设置为“ 1”   进程启动。

     

备注:特殊选项'-'用于分隔行尾。   选项和将传递给参数的参数的开头   子网络进程。它的使用是可选的。当特殊选项   不使用'-',dotnet-watch将使用第一个无法识别的   参数作为传递给孩子的所有参数的开头   dotnet进程。

     

例如:dotnet watch---verbose run

     

即使dotnet-watch支持'--verbose'选项,使用   “-”的含义是应将“ --verbose”视为   dotnet运行的参数。

     

示例:dotnet watch运行dotnet watch test

那怎么了?为什么dotnet watch run不能使用项目的绝对路径而dotnet run可以使用项目的绝对路径?

2 个答案:

答案 0 :(得分:3)

您可以通过在-p命令而不是watch命令上指定run选项来解决此问题。在您的情况下,应该是:

dotnet watch -p C:\foo\bar\Project\Project.csproj run

答案 1 :(得分:1)

我不确定100%,但是dotnet watch正在寻找当前目录中的文件更改。因此,如果您使用绝对路径,则必须知道应该在哪里寻找更改。当然,这种实现是可能的,但是我只是认为在实现watch命令时没有人考虑过