Упаковка приложений C # со сторонними библиотеками? - PullRequest
0 голосов
/ 14 июля 2010

У меня есть приложение, которое использует платформу BouncyCastle, как мне упаковать это приложение, чтобы мне не пришлось вручную ставить BouncyCastle .dll на другие компьютеры? Я предполагаю, что это можно сделать с помощью установщика или что-то подобное? Где приложения ищут ссылки на сторонние библиотеки по умолчанию?

Ответы [ 3 ]

2 голосов
/ 14 июля 2010

В качестве альтернативного подхода вы можете добавить сборки в основную сборку.Есть такие коммерческие инструменты, которые поддерживают это, например DeepSea Obfuscator или вы можете использовать ilmerge .

Общий способ работы заключается в том, что вы разрабатываете с использованием отдельных сборок и когда вы отправляетеВ продукте вы делаете дополнительный шаг сборки, который объединяет сборки в одну большую сборку.Вы даже можете интернализировать внедренные сборки, чтобы был доступен только ваш общедоступный интерфейс.

Таким образом, вы можете развернуть свой продукт как одну сборку, что особенно удобно, если вы создаете компоненты.

Чтобы ответить на ваш второй вопрос;.NET Framework будет выглядеть в нескольких местах.GAC является доминирующим, но если вы убедитесь, что указанная сборка находится в той же папке, что и основная сборка, .NET ее найдет.Нет необходимости регистрировать его в GAC.

1 голос
/ 14 июля 2010

Поскольку BouncyCastle является управляемой библиотекой, если вы создаете проект установщика в Visual Studio и добавляете в него исполняемый файл приложения, установщик автоматически обнаружит зависимость от BouncyCastle и добавит его в проект установщика.Когда пользователи установят ваше приложение, библиотеки BouncyCastle будут автоматически скопированы в каталог установки, и все будет хорошо.

1 голос
/ 14 июля 2010

Вам необходимо создать установщик.Лучше всего начать с ClickOnce .Это даст вам возможность собрать все необходимые файлы в один и предоставить интерфейс для установки.

Второй вопрос.По умолчанию место для поиска сборок: GAC .

.
...