[英]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.