5

CompileAssemblyFromSource複数のソースを使用して、コードを動的にコンパイルしています。

コンパイルエラーが発生した場合、Errorsコレクションから行番号などを取得できます。

ただし、行番号はすべてのソース内の行番号です。必要なのは、(追加されたソースの中で) 失敗したソース内のソースと行番号です。

それは計算アクロバットをしなくても可能ですか?

4

1 に答える 1

0

私は自分のアプリの 1 つでこれを行い、エラーが発生した場合は、コンパイル中に生成されたすべてのエラー メッセージと共に、コンパイルされたソース (コンパイラ エラーを生成したソース) を書き出します。これらのエラー メッセージをコメントに入れて、ソース ファイルの末尾に追加します。記憶が正しければ、ソース ファイルは File.WriteAllText() で書き込まれ、ユーザーの一時ディレクトリ内のファイルに書き込まれ、そのソース モジュールへのパスで例外がスローされます。これはすべて、コンパイル エラーが発生した場合にのみ発生します。エラーがなければ、この方法でソースを書きません。

私の場合、すべてのソースを単一のモジュールに連結するため、実際にはモジュールは 1 つだけです。この状況で「143 行目」が何を意味するかについて混乱はありません。

于 2011-10-14T23:04:56.330 に答える