CompileAssemblyFromDom (CodeDom компилятор) генерирует номера строк иначе, чем визуально студии - PullRequest
0 голосов
/ 15 сентября 2010

Я использую CodeDOM для генерации и компиляции сборки. Я обнаружил, что если сгенерированный код не компилируется, метод CompileAssemblyFromDom генерирует номера строк, которые отличаются от того, что генерирует Visual Studio.

Так, например, если я вызову GenerateCodeFromCompileUnit для провайдера кода, перенесу сгенерированный код в Visual Studio и попытаюсь скомпилировать его, номера строк в каждой ошибке напрямую соответствуют строке кода, но номера строк, возвращаемые в Объект CompilerResults из метода CompileAssemblyFromDom напрямую не соотносится с одной и той же строкой сгенерированного кода.

Это становится проблемой для меня, потому что я динамически компилирую код, и если есть ошибки, я хочу отобразить код и выделить нужную строку для пользователя. Кто-нибудь сталкивался с такой же проблемой?

Edit: Я думаю, это потому, что целые строки, которые являются комментариями, не учитываются как строки при сообщении номеров строк поставщиком CodeDom, но они относятся к Visual Studio. Любой способ изменить расчет номера строки поставщиком CodeDom, чтобы включить закомментированные строки?

1 Ответ

0 голосов
/ 15 сентября 2010

Вы должны использовать CompileAssemblyFromDom()? Я использовал CompileAssemblyFromSource() и не заметил никаких проблем с номерами строк.

...