Как я могу получить список файлов, загруженных моим процессом?

StackOverflow https://stackoverflow.com/questions/1976608

  •  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 в вашем выходном каталоге (ну, почти все ссылки, необходимые для ваших ссылок, не будут скопированы автоматически, поэтому лучше всего добавить их также в качестве локальной ссылки).

Надеюсь, это поможет.Если нет, просто скажите, почему, я постараюсь продолжить в этом направлении.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top