如何阻止 Visual Studio 2022 在移动文件时自动更改命名空间和使用语句?

Bio*_*ian 23 visual-studio visual-studio-2022

当我将 C# 文件拖到其他目录时,VisualStudio 2022 v17.2.3 突然开始更改它们的命名空间。在此过程中,它还删除/添加/修改 using 语句(通常是有害的)并更新引用移动文件的每个文件。它将命名空间更改为 ProjectName.FolderPath。

搜索“工具”>“选项”没有找到任何结果。我已禁用所有扩展程序,以防其中一个扩展程序负责,但它没有任何效果。如何制止这种行为?

Bio*_*ian 37

要全局禁用此功能,请转至

工具 > 选项 > 项目和解决方案 > 常规

并取消选中底部附近“移动文件时启用命名空间更新”旁边的框。VS2022 中存在一个错误,导致搜索时无法显示此选项。

  • 这是一个多么可怕的特征啊。感谢您找到这个,正在选项中到处搜索。 (10认同)
  • 我选择 **不要再问** 和 **否**,突然间所有命名空间都发生了变化...谢谢!它不会出现在搜索中... (6认同)
  • @rory.ap 可怕这个词用错了;并且可能是因为这个功能的必要性不适用于我。您/您的团队多年来一直在等待这一点,但这并没有改变该功能改变默认行为的事实。我/我的团队从未出现过该提示,并且该功能在更新时默认启用。我不介意分享我为什么不需要该功能的想法,但不幸的是,评论的长度有限使得这几乎是不可能的。有趣的是:类型序列化(是的,恶心)和命名空间!=文件夹结构(是的,有争议)。 (2认同)

ogg*_*gre 6

如果您需要在每个文件的基础上禁用命名空间更新(而不是全局设置),那么您可以将以下指令添加到文件中:

#pragma warning disable IDE0130 // Namespace does not match folder structure
    
namespace This.Namespace.Stays.Intact
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

乍一看,它禁用了警告,但它也禁用了该文件的命名空间更新。当您想要排除单个文件在名称空间同步上被修改时,这非常方便。