[英]visual studio 2019 .csproj install latest NuGet version
[英]Is it safe to edit .csproj file in Visual Studio 2019?
我們有一個包含多個項目的 C# 解決方案。 我們正在使用 Github 桌面管理解決方案的版本控制,即在 Visual Studio 之外。 在全新安裝 Visual Studio 2019 社區版的新機器上將新代碼推送到 GitHub 后,當我向解決方案中的 API 項目添加新文件時,我發現該文件被添加到 .csproj 文件中,如下所示,並且 IDE 永遠不會在構建、調試、代碼完成等過程中包含該文件。
<ItemGroup>
<Compile Remove="Controllers\TestController.cs" />
</ItemGroup>
我還在解決方案資源管理器中的 TestController 文件旁邊看到一個 + 號。 將鼠標懸停在 + 號上會顯示“待添加”消息。
為什么會這樣? 刪除 .csproj 文件中的這個項目組塊是否安全? 對於添加到項目中的新文件,有沒有辦法防止這種行為?
細節
語境:
包含 5 個項目的 C# 解決方案 - (1) WebAPI、(2) 身份、(3) 數據訪問、(4) 服務、(5) 共享庫。 使用 Visual Studio 2019 社區版進行編輯。
完整時間表:
--- 警報:現在發現問題---
在 Visual Studio 2019 中編輯 .csproj 文件是否安全?
如果你知道你在做什么並且你做對了,當然。 否則,沒有那么多。
為什么會這樣? 刪除 .csproj 文件中的這個項目組塊是否安全? 對於添加到項目中的新文件,有沒有辦法防止這種行為?
之所以發生這種情況,是因為 Visual Studio 沒有作為該項目的一部分出現在項目子目錄中的文件。 因此,它添加了<Compile Remove... />
元素以將其作為項目的一部分從編譯中排除。 刪除該元素是安全的,但根據我的經驗,它只會再次出現。
作為一般規則,您不應將文件添加到由 Visual Studio 管理的項目目錄,除非使用 Visual Studio UI 本身。 從您的帖子中不清楚您為什么要這樣做。 您顯然要向其中添加文件的目錄是您的項目目錄。 它應該只包含實際上屬於該項目的文件。
最好的解決方法是當文件不應該是該項目的一部分時,不要嘗試將它們添加到項目目錄中。
您可能有XY 問題。 如果您可以發布一個新問題來解釋您添加不屬於的文件的場景,並尋求指導以完成您擁有的任何更廣泛的目標,但又不違反 Visual Studio 的規則,你可能會得到比“不要那樣做”更好的答案。
我想我已經確定了問題所在。 我相信發生的事情是,一旦將本地分支推送到遠程,即使我沒有在 Visual Studio 中正式跟蹤項目,使用 Visual Studio 對項目所做的進一步更改也不會集成到項目中。
git status 顯示我仍然在我最初的本地分支上。 我做了以下與遠程父分支同步,然后啟動一個新的本地分支:
git stash
git checkout <parent_branch>
git pull
git checkout -b <new_branch>
這將我切換到一個新分支,現在我可以像往常一樣編輯文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.