5

我正在动态编译代码,使用CompileAssemblyFromSource多个源。

Errors如果出现编译错误,我可以从集合中检索行号等。

但是,行号是所有源中的行号。我需要的是来自失败源(在添加的源中)中的哪个源和行号。

不做计算杂技可以吗?

4

1 回答 1

0

我在我的一个应用程序中执行此操作,如果出现错误,我会写出已编译的源 - 生成编译器错误的源 - 以及编译期间生成的所有错误消息。我将这些错误消息放在注释中,并将它们附加到源文件的末尾。如果我没记错的话,源文件是用 File.WriteAllText() 写入的,在用户临时目录中的一个文件中,然后我用该源模块的路径抛出一个异常。所有这一切只有在出现编译错误时才会发生。如果没有错误,那么我不会以这种方式写出源代码。

在我的情况下实际上只有一个模块,因为我将所有源连接到一个模块中。在这种情况下,“第 143 行”的含义并不令人困惑。

于 2011-10-14T23:04:56.330 回答