2008-09-09 9 views
1

Есть ли способ получить все необходимые сборки (за исключением .net framework) для проекта .net в папку, готовую для упаковки в nsis в качестве файла установки?Получение списка сборок, необходимых приложению

Я пробовал написать небольшое консольное приложение, которое использует отражение, чтобы получить список DLL, но застрял в поиске надежного способа определить, есть ли dll из структуры .net или нет.

Ответ может быть простым переключателем в Visual Studio для вывода всех зависимостей или отдельного приложения, которое может это сделать, или плагина для Nsis или некоторой информации о отражении, которое я пропустил.

+0

Что касается надежного способа определения, является ли dll из .net-структуры или нет, то лучше всего я могу использовать свойство Codebase объекта Assembly, для которого mscorlib является «C: \ WINDOWS \ Microsoft .NET \ Framework, однако это не для всех сборок сборки .net. – 2008-09-09 15:03:25

+0

Вы хотите быть осторожным с этим, в зависимости от того, для чего установлен ваш установщик NSIS. Возможно, вы случайно включили DLL в свой установщик, у меня есть лицензия на перераспределение. – 2008-09-14 23:49:10

ответ

1

В Visual Studio (по крайней мере, 2005 г. - то, что я использую сейчас) каждая ссылка, связанная с проектом, имеет свойство «Копировать локальное», для этого может быть установлено значение true/false. Когда true, он скопирует dll для вас в текущий каталог конфигурации.

1

Для этого вы можете использовать NDepend. Загрузите его, создайте новый проект NDepend, перетащите & свои сборки в виде сетки данных приложений, и вы увидите, что NDepend мгновенно разрешает сборку уровней, необходимую вашему набору приложений.

Вы также можете предоставить список папок, где можно указать NDepend, где искать. Если сборка уровня не может быть найдена, то NDepend отметит ее как не найденную, что, я думаю, является ценной информацией.

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