如何强制缩进C#条件指令?

如何强制缩进C#条件指令?,c#,visual-studio,C#,Visual Studio,在VisualStudio中编辑->高级->格式化文档后,是否有一个选项可以禁用#if、#endif和其他指令未被索引 谢谢大家! 恐怕Visual Studio中没有直接设置。不管怎样,如果你找到了,请告诉我:) 或者,您可以尝试使用外部工具格式化代码(例如)。您可以在VS中创建一个宏,该宏关闭当前文件,在文件上运行外部工具并重新打开它(并且可能将光标重新定位在上一个位置),这样您就可以从Visual Studio格式化代码 无论如何,我不确定这项任务是否值得付出努力 否则,在当前文件被VS格

在VisualStudio中编辑->高级->格式化文档后,是否有一个选项可以禁用#if、#endif和其他指令未被索引


谢谢大家!

恐怕Visual Studio中没有直接设置。不管怎样,如果你找到了,请告诉我:)
或者,您可以尝试使用外部工具格式化代码(例如)。您可以在VS中创建一个宏,该宏关闭当前文件,在文件上运行外部工具并重新打开它(并且可能将光标重新定位在上一个位置),这样您就可以从Visual Studio格式化代码

无论如何,我不确定这项任务是否值得付出努力

否则,在当前文件被VS格式化后,您可能会编写自己的宏来缩进该文件中的预处理器指令,而无需使用外部工具(为了获得与VS中完全相同的格式,配置这些工具可能会非常困难)。

请查看

StyleCop分析C#源代码以强制执行一组样式和一致性规则。它可以从VisualStudio内部运行,也可以集成到MSBuild项目中。StyleCop还集成到许多第三方开发工具中

您甚至可以添加自定义规则:


希望有帮助。

您可以将其隐藏在某个静态助手类中

internal class Helper
{
    internal static bool IsDebugBuild
    {
        get
        {
#if DEBUG
            return true;
#endif
            return false;
        }
    }
}
然后您可以按如下方式使用它:

if (Helper.IsDebugBuild)
{
    ...
}

谢谢你提供的信息。事实上,我只是好奇。我不打算在这件事上花费时间,因为这只是一个小问题,而且Visual Studio的行为可能会在未来的版本中发生变化,这将使我的任何努力都毫无用处:-(谢谢!我没有时间尝试创建自定义规则,但似乎这是可能的。