Pergunta

Eu gostaria de converter meu puro .Net utilitário de console 2.0 simples em um exe portátil que eu poderia apenas colocar em um stick USB e executar sem ter que se preocupar se as bibliotecas CLR e quadro são instalados em uma máquina específica ou não .

Stackoverflow já tem algumas informações sobre o uso de Mono e Mkbundle para criar exes do Windows independentes da Net-projectos, mas o que eu gostaria de ter é um HOWTO compacto, mas útil.

Quais são os passos mínimos para alcançar uma portabilidade de um projeto Visual Studio simples C #?

Foi útil?

Solução

Eu encontrei uma simples how-to aqui , no entanto, como eu não testei por mim mesmo, não posso garantir resultados. Como de costume YMMV.

citar o artigo original (por favor, seguir o fio sobre o artigo original, bem embora):

Mkbundle: pacote Mono com suas aplicações

Você já se perguntou por que você precisa .NET Framework ou Mono instalado para executar o seu programa? Bem, seria muito mais útil se você poderia distribuir seus aplicativos sem chatear os seus clientes para instalar estruturas adicionais, não é? Então aqui estamos nós. Deixa pacote um aplicativo baseado em .NET com Mono, então você não precisa de Mono, ou .NET instalado para executá-lo.

Preparar um ambiente

Primeiro você precisa instalar o mais novo Mono e Cygwin. Instalando o Mono é muito simples para que você não pode estragar nada. Quando você começar a instalar o Cygwin, entrar em vista completa, então por favor incluem 4 pacotes adicionais. Estes são: gcc, mingw, mingw-zlib e zlib

.

Agora você precisa de um prompt de comando. Ambos Mono e Cygwin criar atalhos para prompts de comando na área de trabalho, mas é preciso combiná-los em um só. Aqui está um lote que faz isso por mim. Pode ser necessário alterá-lo, se você tiver outra versão Mono por exemplo.

Código:

echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%

chdir C:\cygwin\bin
bash --login -i

Bundle uma aplicação com Mono

Por isso, estamos agora em um prompt de comando, executar este modo de Cygwin. Note que este não é um prompt do DOS mais, e "dir" não funcionará mais. Para listar arquivos usam Linux "ls" comando. A pasta que você está navegando agora é como a mostrada abaixo. Arek é um nome de usuário. Código:

C:\cygwin\home\Arek

Browse para esta pasta com o seu explorador. Agora você copiar 2 arquivos para esta pasta. 1º é o seu exe aplicação e 2 é o arquivo Mono.dll (2MB) que você pode encontrar na sua pasta Mono. Código:

C:\Program Files\Mono-2.4\bin

Por alguma razão todo o procedimento não funciona com nomes de arquivo longos, então mudar o nome do exe aplicação. Ele deve cumprir com este velho DOS 8.3 de nomeação.

Deixa para trás Ir para prompt de comando. Você só precisa de um comando para empacotar a sua aplicação, e aqui está uma explicação.

mkbundle é um programa dentro do pacote Mono | Especifica -o Bundled1.exe como o exe Mono-empacotados serão nomeados | Winform1.exe diz que será incluído, bibliotecas Mono será incluído qualquer maneira | --deps é necessário, embora eu não sou certo o que ele faz | -z irá comprimir a saída exe um monte

Código:

mkbundle -o Bundled1.exe Winform1.exe --deps -z

Então, agora você tem a sua Bundled1.exe, que contém seu próprio aplicativo junto com o próprio Mono. Você não deve precisar Mono nem .NET para executá-lo. Observe que será 4MB ou mais em tamanho. Esses exes empacotados não são leves.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top