Member 13721844 Ответов: 1

Как мне получить путь к DLL


привет
В моем решении у меня есть три проекта, скажем proj1,proj2, proj3

они уже были успешно составлены .

теперь, когда я нахожусь в 3-м проекте, мне нужно получить путь dll 2-го проекта.
могу ли я сделать это с помощью dot net.пожалуйста, предложите

Что я уже пробовал:

пробовал использовать классы ассемблера, но безуспешно

1 Ответов

Рейтинг:
4

OriginalGriff

Первое, что вам нужно сделать, это идентифицировать сборку - есть несколько способов сделать это.
Если код proj2 вызывает метод в proj3, то этот метод может использовать сборку.Метод getcallingassembly:

Assembly caller = Assembly.GetCallingAssembly();
Если это не так, вы можете использовать GetAssembly:
Assembly otherProject = Assembly.GetAssembly(typeof(NameOfClassInProj2));
Затем вы можете использовать свойство Location:
string callerPath = caller.Location;
string typePath = otherProject.Location;


Member 13721844

Спасибо, Грифф.

Я ма использую vb.net а мой 2-й класс проекта называется "адаптер".

поэтому я разместил код следующим образом.

Dim lobjtype As Type = GetType("адаптер")
Dim lobjAdapterAssembly As Assembly = сборка.GetAssembly(lobjtype)
действительно ли класс "адаптер" должен быть доступен в 3-м проекте для этого.пожалуйста, предложите

OriginalGriff

Да, он должен быть доступен - если его нет, то о нем ничего не известно!
Вот почему я предпочитаю то, как я сделал это с typeof - компилятор может выполнять проверку имени класса вместо того, чтобы создавать проблемы во время выполнения.

Если вы хотите использовать язык, то укажите язык в своем вопросе - чем лучше информация, которую Вы нам дадите, тем лучше информация, которую мы можем вам дать!

Dim otherProject As Assembly = сборка.GetAssembly(Метод Gettype(Адаптер))

Member 13721844

спасибо Гифф

OriginalGriff

Всегда пожалуйста!