2010-07-14 6 views
0

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

ответ

1

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

+0

Muchos gracias mi amigo. –

1

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

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

2

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

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

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

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

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