2013-04-07 3 views
0

Вот это требование: я хочу создать собственный шаблон проекта Visual Studio C#, через который созданный проект имеет все ссылки, добавленные правильно, чтобы передать компиляцию.C#: Как программно определить, какие ссылки отсутствуют, перед компиляцией вручную?

Я получил эту проблему, что некоторые ссылки будут отсутствовать в данном случае: если сгенерированный проект содержит код метод MethodA типа AClass призывающего в DLL с именем A.dll, но один из параметров AClass.MethodA «s определяются в B.dll.

Короче говоря, A.dll ссылки B.dll по методу MethodA в классе AClass, компиляция не удалось из-за B.dll отсутствует.

Кто-нибудь знает идеальное решение о том, как найти зависимость B.dll для компиляции?

Я пробовал Assembly.GetReferencedAssemblies, но он получит все ссылочные сборки, в которых большинство из них не нужно.

Я также пытался использовать событие ReflectionResolve, но это тоже не поможет.

ответ

0

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

Нажмите Анализ панели инструментов, она предоставит вам все зависимости dll/assembly.

+0

Вы имеете в виду я называю API из «Рефлектор», чтобы найти ссылки для компиляции цели? – aaron

+1

Нет, интерактивно делайте это. Это быстрее. – David

+0

, но я хочу сделать это «программно», потому что это «шаблон пользовательского проекта» – aaron

1

Resharper ручка эта гладкая как шелк. Отсутствующая ссылка заставляет ее отображать ошибку в окне исходного кода и даже предлагает правильную ссылку на dll.

Resharper также имеет API, если вы хотите кодировать его самостоятельно

+0

Есть ли способ сделать это программно? – aaron

+0

см. Обновленный ответ – Filip

+0

emm, кажется немного сложным .. – aaron

Смежные вопросы