Pergunta

Eu gostaria de distribuir meus programas .NET sem o .NET framework. É possível compilar um programa .NET para código de máquina?

Foi útil?

Solução

Sim, você pode pré-compilar utilizando Ngen.exe, no entanto, isso não remove a dependência CLR.

Você ainda deve enviar as assembleias IL, bem como, o único benefício de Ngen é que a sua aplicação pode começar sem invocar o JIT, de modo a obter um verdadeiro tempo de inicialização rápida.

De acordo com CLR Via C #:

Além disso, os conjuntos pré-compilado utilizando Ngen são geralmente mais lento do que JIT'ed montagens porque o compilador JIT pode otimizar a máquina alvos (? 64 bits? registros especiais de 32 bits? etc), enquanto NGEN só vai produzir um baseline compilação.

EDIT:

Há algum debate sobre a informação acima da CLR Via C #, como alguns dizem que você é obrigado a correr Ngen na máquina de destino apenas como parte do processo de instalação.

Outras dicas

Remotesoft tem um: Salamander .NET Linker

Eu não tenho nenhuma experiência com ele embora.

Existem algumas ferramentas de terceiros que fazem isso, por exemplo.

Outro (caro e proprietário, licenças começam em US $ 1599) produto que pode fazer isso é Xenocode Postbuild . Já não usei-me embora, com ele custando sobre o produto nacional bruto de um pequeno país Africano e tudo ...

É possível compilar o código .NET IL para código de máquina?

Sim, mas o .NET Framework faz isso por você em tempo de execução (padrão) ou no momento da instalação (ngen). Entre outras razões, esta IL - código de máquina> é feita separadamente em cada máquina instalar para que possa ser otimizado para que determinada máquina

.

Eu gostaria de distribuir meu .NET programas sem o .NET framework. É possível compilar uma .NET programa para código de máquina?

Não, para todos os efeitos, você não pode fazer isso. O 3º soluções alternativas partido pode funcionar em alguns cenários, mas então eu realmente não iria considerá-lo "código gerenciado" ou "NET" mais.

Sim, agora você pode! Recentemente, a Microsoft anunciou .NET nativo , um pedaço de tecnologia que compila a sua aplicação com .NET Native tempo de execução (que eles chamam de MRT) em um binário (na verdade, um executável e uma biblioteca dinâmica).

Veja os links: http: //blogs.msdn .com / b / dotnet / Arquivo / 2014/04/02 / anunciando-net-nativa-preview.aspx http://blogs.msdn.com/b /dotnet/archive/2014/04/24/dotnetnative-performance.aspx

IL2CPU para a parte de compilação.

Eu não acho que é possível. Você pode fazer uma prejitted montagem, mas você ainda precisa do quadro.

Se você apenas preocupado com o tamanho da implantação do quadro, que você pode ler sobre este .

Eu acho que você não deve: Essa é a tarefa do compilador JIT.

No entanto, você poderia usar ClickOnce ou Windows Installer para implantá-lo de modo que o quadro em falta não é um problema tão grande:. Você poderia dizer que o instalador para fazer o download do Framework e instalá-lo

Olhe projecto MONO: comando mono com opção --aot. http://www.mono-project.com/AOT

Eu sempre pensei que seria legal para compilar c # para o código de máquina diretamente, sem a dependência CLR embora ....

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