Pergunta

Pode ser uma pergunta estúpida, mas todas as minhas tentativas para o Google falharam. A questão é: como você pode desenvolver aplicativos do Windows que não precisam de um pré-instalado redistribuível? Quero criar aplicativos que sejam executados também em versões mais antigas do Windows, que não possuem a estrutura .NET ou algo semelhante incluído.

Obrigado Ewolf

Foi útil?

Solução

Primeiro, programa em um idioma nativo, como C ++, sem clr.

Segundo, desative o manifesto e evite vincular DLLs externos (como STDC ou MFC).

Outras dicas

O que você quer dizer com versões mais antigas do Windows?
A estrutura .NET faz parte do Windows desde o Windows 2003 e .NET 1.1.
Portanto, se você estiver segmentando versões do Windows mais recentes que o Windows 2003, poderá ter certeza de que o .NET está disponível.

Há também soluções, que Automatize a vinculação/embalagem de produtos .NET, para que você não precise enviar nenhum redistribuível etc.

Atualizar:
Acabei de descobrir isso Mono permite que você vincule todo o tempo de execução ao seu executável.
Eles chamam isso de recurso Pacote.
Leia mais sobre isso aqui.

Use Delphi - Embora as versões mais recentes do IDE tenham alguns bugs ímpares, é fácil criar aplicativos nativos do Windows que não precisam de um redistribuível. Muito mais fácil de usar do que C ++/Win32.

Editar: Como Ewolf apontou, ele não precisava do .NET, apesar da pergunta original marcada como .NET.

Em suma, algumas máquinas mais antigas, como Win95/98/2000, podem não ter o tempo de execução instalado. Como você especificou .NET, suponho que você deseja criar um aplicativo usando .NET, há um grande, mas você precisa ter o tempo de execução .NET instalado de antemão, você pode executar o aplicativo .NET. Você pode facilmente contornar isso por dois métodos:

  • Instale o tempo de execução .NET manualmente ou
  • Use um script de instalador personalizado que possa detectar se o .NET Runtime for instalado ou não, para instalar o .NET Runtime Redistributable.

Se você está falando de um aplicativo nativo, como C/C ++, o melhor caminho a seguir (para evitar dependências e minimizar o número de DLLs necessários) é, desenvolva -o no Raw WinApi32, usando apenas as DLLs padrão que muitas máquinas do Windows terá, commctrl.dll, user32.dll, advapi.dll para citar apenas alguns. O resultado final será um executável menor. É claro que você pode agrupar outras DLLs, vinculando estaticamente as DLLs para formar um grande executável do Mammoth.

Eu recomendo que você use o WTL, que é uma estrutura leve C ++. É apenas um passo acima da API Win32, para que você obtenha pequenos ex -dependentes com poucas dependências. O WTL requer a estrutura ATL a que você pode vincular estaticamente, o que significa que você só precisa enviar seu exe.

Outra estrutura que vale a pena ver é Qt. No entanto, isso exige que você envie algumas DLLs com seu aplicativo. O QT é uma estrutura fantástica e acho que você achará mais produtivo que o WTL (dependendo das necessidades do seu aplicativo, é claro.)

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