Как я могу получить список файлов, загруженных моим процессом?
-
21-09-2019 - |
Вопрос
Я пытаюсь выполнить быстрое и грязное развертывание проекта.Я подумал, что было бы легко запустить мой процесс, использовать какой-нибудь инструмент для получения списка всех загруженных файлов (DLL) и использовать этот список для создания списка файлов копирования для моего тестового развертывания.
Думал об использовании filemon, но там очень много шума.Это .net-проект.
Спасибо.
Решение
Вы должны иметь возможность использовать .NET's Reflection для анализа домена (ов) вашего приложения и вывода списка загруженных сборок и местоположений.
var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in loadedAssemblies)
{
Console.WriteLine(assembly.GetName().Name);
Console.WriteLine(assembly.Location);
}
Другие советы
Обозреватель процессов?
Проверьте AppDomain.GetAssemblies
For Each Ass As Reflection.Assembly In CurrentDomain.GetAssemblies()
Console.WriteLine(Ass.ToString())
Next
На этот вопрос дан ответ в другом вопрос уже.
Суть этого в том, чтобы использовать current appdomain для получения списка сборок и перебора местоположения их загрузчика.
Если я понял ваш вопрос, для быстрого развертывания вы можете установить во всех ссылках вашего проекта, кроме рамочных, значение true для параметра "Копировать локально".
Таким образом, когда вы создадите свое приложение, у вас будут все необходимые библиотеки DLL в вашем выходном каталоге (ну, почти все ссылки, необходимые для ваших ссылок, не будут скопированы автоматически, поэтому лучше всего добавить их также в качестве локальной ссылки).
Надеюсь, это поможет.Если нет, просто скажите, почему, я постараюсь продолжить в этом направлении.