Поддерживаются ли конфигурации сборки x64 для Roslyn Analyzers?

Я хотел бы добавить анализатор в решение, которое содержит исключительно проекты x64, и анализатор предназначен только для применения к проектам этого решения. Могу ли я иметь конфигурацию сборки x64 для моего анализатора?

Если я попытаюсь это сделать, Analyzer скомпилируется с x64, но когда я попытаюсь добавить Analyzer в проект x64, я получу предупреждение IntelliSense CS8034 категории Roslyn.HostError:

Не удалось загрузить сборку анализатора C:...\TestAnalyzer.dll: не удалось загрузить файл или сборку "file:///C:\Users...\TestAnalyzer.dll" или одну из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Добавление того же анализатора при компиляции с x86 работает нормально.


person Steffen Loesch    schedule 30.12.2015    source источник


Ответы (1)


Roslyn не заботится о разрядности ваших анализаторов; он просто загружает сборки .Net.

Однако сама Visual Studio является процессом x86.

Если вы сделаете анализатор только для x64, он отлично запустится из командной строки Roslyn, но VS не сможет его загрузить.


Обратите внимание, что разрядность анализатора никак не связана с разрядностью проекта; анализаторы загружаются в компилятор, а не во время выполнения.

person SLaks    schedule 30.12.2015