有没有人知道使用Obsolete事件时Visual Studio C#编译器发出构建警告的技巧或解决方法?
如果我使用公共事件创建一个简单的程序集并将Obsolete属性应用于该事件,当我引用该程序集并在另一个项目中订阅该事件时,编译器在构建时不会发出警告(即使具有最高警告级别)或警告设置为错误).
项目1中的事件声明:
public class APIClass
{
[Obsolete("Obsolete in v2.0")]
public event EventHandler ObsoleteEvent;
}
Run Code Online (Sandbox Code Playgroud)
在Project 2中使用Obsolete事件不会导致生成警告:
private void SubscribeToEvent(APIClass apiClass)
{
apiClass.ObsoleteEvent += delegate { };
}
Run Code Online (Sandbox Code Playgroud)
当我打开源文件时,Visual Studio将该事件识别为Obsolete并将警告(或错误)添加到错误列表:

但是,一旦我构建,警告就会消失,并且不会出现在构建输出中:

丢失的编译器警告似乎已作为错误提交,但在修复之前,是否有任何可能的方法在有人使用该事件时强制发出警告?否则,无法提醒外部消费者他们需要更改其呼叫代码.