Executando aplicativos baseados em .net sem o .NET Framework

Existe uma maneira de executar aplicativos baseados em .net sem a estrutura .net instalada. Existe uma maneira de fazer isso. Existe um software que pode conseguir isso. Software comercial também é possível.

Adicionado:

Alguém tem alguma experiência com o cliente thin VMWare ?

    Existem várias ferramentas diferentes por aí, um par que eu tentei são:

    • XenoCode Postbuild (agora Spoon Studio ) (agora TurboStudio )
    • Salamander .NET Linker

    Você pode encontrar mais fazendo uma pesquisa por ” .NET Linker “.

    Os dois acima, que eu tentei, pareciam funcionar ok, mas eu nunca testei amplamente o meu código construído com eles. Eu tentei principalmente por curiosidade.

    Meus aplicativos .NET são usados ​​principalmente pelos departamentos de TI. Instalar o .NET framework não é grande coisa para eles.

    Se você quiser criar um software mais direcionado aos usuários finais, a instalação do .NET poderá desativá-los.

    Você pode usar mono para link estático todas as dlls de estrutura que você precisa.

    Claro, isso limita a implementação mono do framework, que está melhorando, mas ainda está incompleto em alguns lugares.


    Atualizar:
    Com base nos seus vários comentários, minha melhor sugestão é usar a versão 2.0 do framework. Isso vai instalar muito bem no Windows 2000 sem problemas, e você pode direcioná-lo a partir do Visual Studio 2008, se necessário.


    Eu também estou um pouco curioso quanto ao seu requisito do Windows 2000. Você está implantando em ambientes corporativos ou domésticos?

    Quase nenhum usuário doméstico tem o Windows 2000. Os usuários domésticos acabaram com o Windows ME, que foi lançado mais ou menos na mesma época e, por essa razão, foram quase completamente transferidos para o Windows XP. Você é mais provável ver como máquina Windows 98 em uma casa do que o Windows 2000, e nem mesmo a Microsoft ainda suporta o Windows 98.

    Por outro lado, muitas empresas ainda usam máquinas com Windows 2000 em grande número. Mas os ambientes de negócios geralmente não apresentam problemas ao instalar a estrutura .Net. Eles podem até mesmo adicioná-lo às máquinas automaticamente através da implantação da política de grupo, se necessário.

    Use o Mono, ele é desenvolvido pela Novell e é de código aberto

    Edit: Pergunta foi sobre a execução sem um tempo de execução instalado, independentemente do “fornecedor”. Mesmo assim, aqui está um link para a input da wikipedia do Mono. Apreciar.

    http://en.wikipedia.org/wiki/Mono_(software)

    Minha equipe enfrentou um problema semelhante. Precisávamos executar nosso aplicativo .NET 3.5 WPF no Windows PE, que não possui um framework .NET utilizável. Eu avaliei todas as opções e descobri que o Xenocode PostBuild é o melhor.

    É GUI é um pouco contraditório e houve alguns solavancos na estrada fazendo-o funcionar, mas tem sido confiável desde então.

    Se você seguir esse caminho, esteja ciente de que precisa garantir que seu código seja totalmente depurado antes de gerar o executável não gerenciado, já que você não pode depurar o aplicativo resultante (a menos que você goste de assembler).

    Observe também que a incorporação do .NET framework torna um grande executável. ~ 20MB para 2.0 e ~ 40MB para 3.5.

    Você não mencionou o tipo de software que estava procurando executar, então imaginei adicionar meus dois centavos.

    A Microsoft lançou o Silverlight, um plugin de navegador baseado em .NET, e eles têm trabalhado com a Novell para lançar uma versão do Silverlight com base no compilador Mono mencionado acima chamado Moonlight. A Microsoft suporta nativamente o Windows e o Mac OS X 10.5.

    Se você quiser mais informações, aqui estão alguns links: http://en.wikipedia.org/wiki/Microsoft_Silverlight http://www.microsoft.com/silverlight/

    Isso realmente soa como mais problemas do que o seu valor quando você está trabalhando com um sistema operacional que suporta .net.

    .net 2.0 Acho que até vem como um Windows Update nos dias de hoje, é apenas 26MB, e você só instala uma vez. Se você quiser algo que é nativo do win32, volte para o C ++ não gerenciado.

    Também confira: SmallestDotNet (embora não seja o Windows 2000, ele menciona que “Em breve, a Microsoft lançará um download super pequeno para máquinas XP SP2 que não possuem versão do .NET Framework”.)

    Se não quiser usar o .NET framework, acho que seria melhor considerar o uso de uma outra linguagem de programação, que gera um executável autônomo. Algo como Delphi ou, se o prêmio for importante, Lázaro. Mas tenho certeza que existem outras alternativas.

    A única alternativa para o .NET framework que eu conheço é o MONO (para LINUX).

    Pergunta antiga, mas pode ajudar outros leitores

    Você pode usar os binários do IKVM para executar um aplicativo Mono / .Net / Java sem qualquer estrutura pré-instalada. Apenas mantenha em mente:

    Você deve ser capaz de executá-lo com sucesso. (No Windows .NET, lembre-se de copiar as DLLs do IKVM para o diretório atual.)

    Por favor, consulte a documentação para obter uma visão melhor.

    É chamado de vincular estaticamente a estrutura .net. Mono permite e há outros fornecedores também. Um caso é se você precisa rodar no windows pe.

    Se você quer dizer “Posso executar uma aplicação .NET sem ter que instalar uma estrutura?” então a resposta é não, você não pode.

    Se você quer dizer “Posso executar um aplicativo .NET sem ter que instalar o .NET Framework e o CLR da Microsoft?” então a resposta é apenas se você puder encontrar uma alternativa, e Mono é o único que eu conheço.

    No interesse da integralidade e algo a considerar junto com as respostas do MONO.

    Você já pensou em escrever o aplicativo em código nativo? Dessa forma, você pode simplesmente implantar o seu exe. Se você precisa de um ambiente RAD para produtividade, então ferramentas como Delphi ou C ++ Builder lhe darão uma sensação de FCL (a VCL do Delphi foi arquitetada por Anders Hejlsberg antes de se mudar para a MS, então provavelmente não há co-incidência Delphites)

    Esta é uma das melhores explicações (entre as muitas) que encontrei:

    Na prática, isso não é possível. Teoricamente, um compilador poderia examinar todas as classs que seu aplicativo está usando e include esse código em seu aplicativo e compilar tudo para o código nativo. Mas, isso ainda não conta para o próprio CLR que contém a funcionalidade principal, como o coletor de lixo, o carregador de assembly, o leitor de metadados, etc. Todas essas coisas estão no código nativo, então elas teriam que ser duplicadas.

    Além disso, nem todos os methods nas classs .NET estão em código gerenciado. Se você observar o código desmontado no Reflector, verá que alguns dos methods estão marcados com o sinalizador MethodImplAttributes.InternalCall. Isso significa que a implementação real do método é interna ao CLR. Qualquer sistema que compilasse o C # (ou qualquer outra linguagem .NET) para o código nativo teria que duplicar tudo isso, e isso seria um esforço hercúleo. E o aplicativo resultante provavelmente seria bem grande.