如何有条件地编译 `InternalsVisibleTo(...)` 程序集信息?

How to conditionally compile `InternalsVisibleTo(...)` assembly info?

使用 .Net Core 2.1,我的 AssemblyInfo.cs 看起来像这样:

使用 System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("RazorWare.Core.Media")]
[assembly: InternalsVisibleTo("RazorWare.Core.Business")]

#if DEBUG
[assembly: InternalsVisibleTo("RazorWare.CoreDL.Testing")]
[assembly: InternalsVisibleTo("RazorWare.CoreDL.Testing.CreateNativeWindow")]
[assembly: InternalsVisibleTo("RazorWare.CoreDL.Testing.CreateEventPump")]
#endif

...以及相关项目属性的截图:

项目设置为Release时,#if-#endif包围的程序集属性不会变灰。我怎样才能强制编译器(VS???)识别#if-#endif指令?

如果您无法取消勾选 DEBUG,请使用您自己的符号,例如INTERNALS_VISIBLE_TO_TESTING。仅在 RELEASE 配置中定义它。

但是,我个人不会为此烦恼:我会在两种配置中都包含 InternalsVisibleTo 属性。将它包含在发布配置中没有任何坏处,而且它有一个明显的好处:这意味着您可以测试您要发布的实际二进制文件。