#c# #static-analysis #roslyn
#c# #статический анализ #roslyn
Вопрос:
Я пытаюсь реализовать инструмент для статического анализа кода с использованием Roslyn. Проблема, которую я нахожу, заключается в том, что когда я загружаю решение, проекты веб-сайтов не загружаются в коллекцию проектов решения.
Я попытался преобразовать эти проекты веб-сайтов в проекты веб-приложений, затем Roslyn смог загрузить проект, но когда я просматриваю коллекцию документов проекта, документов (.cs-файлов) в папке App_Code там нет.
Идеальным сценарием для моего случая было бы иметь возможность выполнять статический анализ кода в файлах веб-сайта (включая файлы app_code) без необходимости его преобразования.
Кто-нибудь знает, почему Roslyn не смог загрузить проекты веб-сайтов или документы App_Code в случае веб-приложения? Есть предложения?
Комментарии:
1. «Проекты» веб-сайта не являются проектами. Кажется, вы нашли еще одну причину никогда не использовать «проекты» веб-сайтов, а вместо этого использовать проекты веб-приложений.
2. Джон, я предполагал, что это может быть причиной, но, поискав в Интернете, я не нашел ничего, что могло бы это подтвердить.
3. Если вы ничего не смогли найти, это, вероятно, потому, что «проекты» веб-сайтов странные, и большинство людей, которые знают разницу, ими не пользуются.
Ответ №1:
Файлы внутри папки App_Code не распознались Roslyn, потому что для действия сборки было установлено значение «Содержимое» вместо «Компиляция». Изменено действие сборки, и документы были загружены.
О веб-сайтах, которые не загружаются, похоже, что Roslyn нужен файл csproj для понимания проекта. Веб-сайты, как указано в комментариях, не являются реальными проектами и не имеют этого.