C# 有没有一种方法可以在编译过程中即使出现引用错误也发出DLL

C# 有没有一种方法可以在编译过程中即使出现引用错误也发出DLL,c#,roslyn,roslyn-code-analysis,C#,Roslyn,Roslyn Code Analysis,我想从c代码创建一个dll,即使编译中有引用错误。是否可以从Roslyn API创建它。我可以在EmitOptions类中看到“容忍错误”,但它不起作用 EmitOptions emitOptions = new EmitOptions(tolerateErrors: true); var stream = new MemoryStream(); var emitResult = compilation.Emit(stream, options: emitOptions); 我相信,您可以创建

我想从c代码创建一个dll,即使编译中有引用错误。是否可以从Roslyn API创建它。我可以在EmitOptions类中看到“容忍错误”,但它不起作用

EmitOptions emitOptions = new EmitOptions(tolerateErrors: true);
var stream = new MemoryStream();
var emitResult = compilation.Emit(stream, options: emitOptions);

我相信,您可以创建所谓的引用程序集。您只需在
EmitOptions
上设置
metadataOnly
标志:

var emitOptions=新的emitOptions(仅元数据:true,容忍错误:true);

但此类程序集只能用于解析引用。它们不包含任何实际的代码(所有方法体都被替换为
throw null;
)。

我相信您可以创建所谓的引用程序集。您只需在
EmitOptions
上设置
metadataOnly
标志:

var emitOptions=新的emitOptions(仅元数据:true,容忍错误:true);

但此类程序集只能用于解析引用。它们不包含任何实际的代码(所有方法体都替换为
throw null;
)。

这毫无意义。如果有错误,编译器不知道要发出什么。谢谢您的回复@SLaks。为什么编译器总是担心引用错误。我通过删除语法部分改变了问题。:)编译器需要引用来执行重载解析之类的操作。这毫无意义。如果有错误,编译器不知道要发出什么。谢谢您的回复@SLaks。为什么编译器总是担心引用错误。我通过删除语法部分改变了问题。:)编译器需要引用来执行重载解析之类的操作。