我正在动态编译代码,使用CompileAssemblyFromSource
多个源。
Errors
如果出现编译错误,我可以从集合中检索行号等。
但是,行号是所有源中的行号。我需要的是来自失败源(在添加的源中)中的哪个源和行号。
不做计算杂技可以吗?
我正在动态编译代码,使用CompileAssemblyFromSource
多个源。
Errors
如果出现编译错误,我可以从集合中检索行号等。
但是,行号是所有源中的行号。我需要的是来自失败源(在添加的源中)中的哪个源和行号。
不做计算杂技可以吗?
我在我的一个应用程序中执行此操作,如果出现错误,我会写出已编译的源 - 生成编译器错误的源 - 以及编译期间生成的所有错误消息。我将这些错误消息放在注释中,并将它们附加到源文件的末尾。如果我没记错的话,源文件是用 File.WriteAllText() 写入的,在用户临时目录中的一个文件中,然后我用该源模块的路径抛出一个异常。所有这一切只有在出现编译错误时才会发生。如果没有错误,那么我不会以这种方式写出源代码。
在我的情况下实际上只有一个模块,因为我将所有源连接到一个模块中。在这种情况下,“第 143 行”的含义并不令人困惑。