Структура моего проекта
- A.dll, в которой PostSharp установлен через NuGet и использует его.
- B.exe, который ссылается на A и не использует PostSharp.
Изменить: я создал тестовое решение, чтобы посмотреть, смогу ли я воссоздать проблему, и ошибка исчезла, поэтому, похоже, это какой-то другой процесс сборки в исходном проекте. Я еще не знаю, что.
Моя проблема
В настоящее время это вызывает ошибку компиляции для B.
Неизвестная ошибка сборки: «Не удается разрешить зависимость от сборки PostSharp, версия = 3.0.40.9, культура = нейтральная, PublicKeyToken = b13fd38b8f9c99d7», поскольку она не была предварительно загружена. При использовании API-интерфейсов ReflectionOnly зависимые сборки должны быть предварительно загружены или загружены по запросу с помощью события ReflectionOnlyAssemblyResolve».
Установка PostSharp на B вызывает новое предупреждение.
Модуль «B.exe» не содержит аспектов или других преобразований. Для повышения производительности во время сборки рассмотрите возможность отключения PostSharp для этого модуля, установив символ компиляции (также известный как константа) «SkipPostSharp» в своем проекте или задав свойство MSBuild «SkipPostSharp = True».
Если я отключу PostSharp в свойствах проекта, теперь я получаю эту ошибку.
#error: 'PostSharp не используется в процессе сборки. Если NuGet только что восстановил пакет PostSharp, вам необходимо перестроить решение».
Это происходит из RequiresPostSharp.cs, который устанавливается в каждом проекте PostSharp.
Моя цель
Мне нужно устранить все ошибки и предупреждения.
Мое предлагаемое решение
Думаю, если я смогу устранить первую ошибку и необходимость добавления PostSharp в B, то все будет хорошо. Я не знаю, как это исправить.
Мои вопросы
- Является ли правильным/рекомендуемым решением не устанавливать PostSharp на B и исправлять первую ошибку?
- Если да, то как мне это сделать? Если нет, то как мне найти правильное решение?