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

时间:2018-07-01 05:35:29

标签: c# .net-core preprocessor-directive assemblyinfo

使用.Net Core 2.1,我的AssemblyInfo.cs如下所示:

使用System.Runtime.CompilerServices;

ForEach(H,qs);

...以及相关项目属性的屏幕截图: enter image description here

当项目设置为[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 时,由#if-#endif包围的程序集属性不会变灰。如何强制编译器(VS ???)识别Release指令?

1 个答案:

答案 0 :(得分:2)

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

但是,我个人不会对此进行任何打扰:我将在两个配置中都包含InternalsVisibleTo属性。在发布配置中使用它没有什么害处,而且有一个明显的好处:这意味着您可以测试要发布的实际二进制文件。