2010-08-17 2 views
0

Я сделал сборку в vb.net и получил один exe-файлvb.net: как я могу создать только один файл?

Однако, когда пользователь запускает файл, он говорит, что ему не хватает одной из библиотек (itextsharp).

Итак, вопрос в том, есть ли в vb.net опция сборки, почему она не включает библиотеку в один и тот же файл exe?

ответ

2

Вы можете распределить iTextSharp DLL с приложением. Самый простой способ сделать это - просто включить его в ту же папку, что и ваш EXE. DLL должна выводиться в папку «Отладка/выпуск» проекта каждый раз, когда вы строите, предполагая, что вы добавили его в качестве ссылки в свой проект, а для свойства «Копировать локальное» в Reference установлено значение «Истина».

Если вы хотите распространять один EXE и включить в него iTextSharp, вы можете использовать ILMerge tool (или, альтернативно, Gilma от SourceForge) после сборки EXE.

1

в свойствах ссылки установить Copy To Output Всегда

1

ITextSharp - это не библиотека, связанная с вашим проектом; это сборка, на которую ссылается ваш проект. И хотя VB.Net создает один исполняемый файл из вашего исходного кода, CLR по-прежнему нуждается во всех ссылочных ассемблерах в той же папке, что и ваш исполняемый файл.

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

Примечание: Если вы хотите использовать ILMerge с .Net v4.0, прочитайте this page.