在dotnet watch run命令中使用的绝对路径无效。

26

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

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 watch帮助文档中确实指定了-p-project参数。因此,为什么在使用dotnet watch run时使用项目的绝对路径不起作用,而在使用dotnet run时却可以呢?
3个回答

40
你需要在`watch`命令上指定`--project`选项,而不是在`run`命令上指定。
dotnet watch --project C:\foo\bar\Project\Project.csproj run

文档中有一条说明:

你可以使用dotnet watch --project <项目>来指定要监视的项目。例如,从示例应用程序的根目录运行dotnet watch --project WebApp run也会运行并监视WebApp项目。


3

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


好的观点。不过我认为这是一个bug,因为文档清楚地描述了我们可以指定要监视的项目路径。 - Arkadiusz Kałkus

0
在我的情况下,这只是一个小错误,你必须在执行dotnet命令之前进入项目目录,例如:

cd 你的应用程序名称 dotnet watch run 它会运行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接