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

是否有一个选项如何禁用#if,#endif和其他指令在Visual Studio中的编辑 – >高级 – >格式文档后没有被标记?

谢谢!

看看StyleCop 。

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

您甚至可以添加自定义规则: 为Microsoft Source Analyzer创建自定义规则

希望能帮助到你。

我担心Visual Studio中没有直接设置。 无论如何,如果你找到它,请告诉我:)
作为替代方案,您可以尝试使用外部工具格式化代码(例如AStyle )。 您可以在VS中创建一个关闭当前文件的宏,在文件上运行外部工具并重新打开它(并可能将光标重新定位在前一个位置),这样您就可以从Visual格式化代码工作室。

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

否则,您可以编写自己的宏来在VS格式化之后缩进当前文件中的预处理程序指令,甚至不使用外部工具(为了获得与VS中完全相同的格式,配置可能会非常痛苦) )。

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

internal class Helper { internal static bool IsDebugBuild { get { #if DEBUG return true; #endif return false; } } } 

然后你可以使用它如下:

 if (Helper.IsDebugBuild) { ... }