Необходимые ссылки на сборку .Net

Я использовал функцию «Оптимизировать ссылки» ReSharper в одном из своих проектов C#, и она удалила пару ссылок на Fluent Nhibernate/Nhibernate. Я думал, что это совершенно верно, потому что я не ссылаюсь ни на что из них напрямую в этом проекте.

Когда я перестроил решение, меня встретили:

Тип FluentNHibernate.Mapping.ClassMap`1 определен в сборке, на которую нет ссылок.

Проект (назовем его A) не ссылается напрямую на Fluent Nhibernate, но ссылается на другой проект B, который использует Fluent NHibernate для сопоставлений. Что касается использования B в A, я использую класс, в котором есть карта FNH, но я нигде не использую/ссылаюсь на этот внутренний класс в А.

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


person Alex Moore    schedule 09.02.2012    source источник


Ответы (1)


Я не уверен, почему вы получаете эту конкретную ошибку, но я видел аналогичные проблемы с библиотеками DLL поддержки FNH / NH, в частности, Castle DLLS и Log4Net.

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

person Tom Bushell    schedule 10.02.2012
comment
Мой друг сказал мне, что Visual Studio просто пытается избавить нас от боли, требуя их при компиляции/запуске, а не на полпути к запуску, где он может потерпеть неудачу. - person Alex Moore; 10.02.2012