簡體   English   中英

dotnet watch run 命令中的絕對路徑不起作用

[英]Abolute path in dotnet watch run command doesn't work

要使用指定的絕對路徑運行 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 watch help 指定-p-project參數:

Microsoft DotNet 文件觀察程序 2.1.1-rtm-30846

用法:dotnet watch [選項] [[--] ...]

選項:-?|-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 進程的選項的結尾和參數的開頭。 它的使用是可選的。 當不使用特殊選項“--”時,dotnet-watch 將使用第一個無法識別的參數作為傳遞給子 dotnet 進程的所有參數的開頭。

例如:dotnet watch -- --verbose 運行

盡管 '--verbose' 是 dotnet-watch 支持的選項,但使用 '--' 表示應將 '--verbose' 視為 dotnet-run 的參數。

示例: dotnet watch 運行 dotnet watch 測試

那怎么了? 為什么項目的絕對路徑不適用於dotnet watch run而與dotnet run

您可以通過在watch命令而不是run命令上指定-p (或更長的--project )選項來解決此問題。 您的情況是:

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

文檔中有一條注釋涵蓋了這一點:

您可以使用dotnet watch --project <PROJECT>指定要監視的項目。 例如,從示例應用程序的根目錄運行dotnet watch --project WebApp也將運行並監視WebApp項目。

我不確定100%,但是dotnet watch正在尋找當前目錄中的文件更改。 因此,如果您使用絕對路徑,則必須知道應該在哪里尋找更改。 當然,這種實現是可能的,但是我只是認為在執行watch命令時沒有人考慮過它

就我而言,這只是一個小錯誤,您必須在執行 dotnet 命令之前進入項目目錄,例如:

cd yourAppName dotnet watch run 它會運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM