![](/img/trans.png)
[英]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.