Автономный исполняемый файл - PullRequest
3 голосов
/ 20 апреля 2009

Я работаю над относительно простой программой в VB.NET. Я пытаюсь сделать процесс установки максимально простым для пользователя.

Я знаю, что можно использовать исполняемый файл из каталога отладки в качестве автономного исполняемого файла, но есть ли недостатки этого подхода? Например, если у пользователя нет .NET на его компьютере, программа не запустится.

Есть ли способ опубликовать программу, чтобы она содержалась в одном исполняемом файле?

Спасибо за помощь.

Ответы [ 4 ]

2 голосов
/ 04 сентября 2010

Как я уже говорил, Microsoft предлагает ILMerge, но если вы не хотите использовать стороннее приложение, вы можете написать его самостоятельно. Вашему клиенту по-прежнему понадобится .Net Framework, но он позволит вам скрыть ваши зависимости. Если вы хотите включить также .Net dll, вы должны установить для своих ссылок «copy local» в настройках ссылок.

Эта программа требует, чтобы вы добавили вашу dll в качестве ресурса. Всякий раз, когда вашей программе требуется dll, она будет загружать ее по требованию с помощью ловушки разрешения сборки. Если бы у вас было несколько библиотек DLL, вы должны иметь случай переключения или поиск по списку, который загрузил правильную библиотеку DLL на основе ResolveEventArgs.Name.

Module Program
    ''//Entry Point add dependency resolver hook
    Sub Main()
        AddHandler AppDomain.CurrentDomain.AssemblyResolve, _
                   AddressOf AssemblyReslover
    End Sub

    Private Function AssemblyReslover(ByVal sender As Object, _
                                  ByVal e As ResolveEventArgs) _
                                  As Assembly
       ''//ReferenceAssembly
        Dim ra As Assembly
        ra = Assembly.Load(My.Resources.MyDLL)
        Return ra
    End Function

End Module

http://support.microsoft.com/kb/837908

2 голосов
/ 20 апреля 2009

Я думаю, что исполняемый файл развертывания ClickOnce - ваша самая близкая ставка для достижения этой цели. Вот хороший учебник о том, как это сделать: Развертывание ClickOnce

0 голосов
/ 03 сентября 2010

Red Gate Smart Assembly может скомпилировать сборку .NET в отдельный исполняемый файл. Он может встраивать все зависимости в исполняемый файл.

Это не бесплатно, но поставляется с другими очень полезными инструментами. Мы начали использовать это недавно, и до сих пор это было довольно полезно.

https://www.red -gate.com / продукция / smartassembly / index.htm

0 голосов
/ 20 апреля 2009

Я не думаю, что .NET-программы обычно можно превратить в отдельные программы, так как .NET Framework разработана отдельно от программы. Однако рассматривали ли вы установку фреймворка во время установки с использованием распространяемого пакета .NET? Это обеспечило бы пользователям самую последнюю версию .NET, если они этого еще не сделали.

(Я связался с пакетом 2.0 здесь, возможно, вам нужна более новая версия.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...