在 .net 命令行编译器中,在 "out" 选项中给出随机文件扩展名时会发生什么情况?

in .net command line compiler, what happens when random file extension is given in the "out" option?

当我将所有 cs 文件编译为单个程序集时的示例(比如 Single.dll),但是当我将文件扩展名作为随机文本提及时,如下所述

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc -target:library -out:Single.abc *.cs

它没有抛出错误,而是创建了一个文件 "Single.abc"

做这种编译的目的是什么?

参见此处示例:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/command-line-building-with-csc-exe

如果您要求 Single.dll,您会得到您会得到的,除了 Single.abc 作为名称。您特别要求编译器执行此操作。编译器了解您的请求并按照您的要求进行操作。谁知道呢,也许您选择了一个 .abc 扩展名,这样当您将它发送给其他人时它就不会被电子邮件客户端阻止。

编译器不会直接放弃并打印一条错误消息,因为没有理由这样做。它需要编写额外的代码来明确拒绝一个甚至不清楚这是错误的情况。