0

CodeDOM を使用してアセンブリを生成およびコンパイルしています。生成されたコードがコンパイルされない場合、CompileAssemblyFromDom メソッドは、Visual Studio が生成するものとは異なる行番号を生成することがわかりました。

たとえば、コード プロバイダーで GenerateCodeFromCompileUnit を呼び出し、生成されたコードを Visual Studio に取り込んでコンパイルしようとすると、各エラーの行番号はコードの行に直接関連付けられますが、CompilerResults オブジェクトで返される行番号はCompileAssemblyFromDom メソッドは、生成されたコードの同じ行に直接関連付けられません。

私はコードを動的にコンパイルしているため、私にとっては問題であることが証明されています。エラーがある場合は、コードを表示し、問題の行をユーザーに強調表示したいと考えています。誰かがこの同じ問題に遭遇しましたか?

編集: CodeDom プロバイダーによって行番号を報告するときに、コメントである行全体が行としてカウントされないためだと思いますが、Visual Studio ではそうです。CodeDom プロバイダーによる行番号の計算を変更して、コメント行を含める方法はありますか?

4

1 に答える 1

0

使用する必要がありますCompileAssemblyFromDom()か? 私は使用しましCompileAssemblyFromSource()たが、行番号に問題はありませんでした。

于 2010-09-14T21:22:53.653 に答える