c# - 如何有条件地编译“InternalsVisibleTo(...)”程序集信息?
问题描述
使用 .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
当项目设置为 时,由 包围的程序集属性#if-#endif
不会灰显Release
。如何强制编译器(VS???)识别#if-#endif
指令?
解决方案
如果您无法取消勾选 DEBUG,请使用您自己的符号,例如INTERNALS_VISIBLE_TO_TESTING
. 仅在 RELEASE 配置中定义它。
但是,我个人不会为此烦恼:我会InternalsVisibleTo
在两种配置中都包含该属性。在发布配置中使用它并没有什么坏处,而且它有一个明显的好处:这意味着您可以测试您要发布的实际二进制文件。
推荐阅读
- python - 如何在 Google AppEngine Python37 中获取凭据
- c++ - const 指针作为参数传递给 constexpr 函数
- r - 如何获得仅在一种组织中表达的基因数量
- java - 在java中将日期5位int更改为日期字符串
- c++ - 在 qt 中找不到 QAbstractFormBuilder 类
- php - Laravel 从集合中提取元素,并对其进行排序
- php - PHP中的字符串到int
- mysql - 由于版本原因,无法使用 MySql.Data.MySqlClient
- c# - Linq 不识别命名空间
- android - 更新 Firebase 实时数据库值的问题