Perché la mia applicazione .NET 4 sa che .NET 4 non è installato

Ho sviluppato un’applicazione che aveva come destinazione .NET 4 l’altro giorno e XCOPY-l’ho installata su una macchina Windows XP. Avevo detto al proprietario della macchina che avrebbero avuto bisogno di installare .NET Framework 4 per eseguire la mia app e lui mi ha detto di averlo fatto (non una fonte attendibile). Quando ho eseguito l’applicazione mi è stata presentata una finestra di messaggio che diceva che questa app richiede .NET Framework 4, mi piacerebbe installarla? Facendo clic sul pulsante Sì, sono arrivato al sito Web di Microsoft e pochi clic dopo è stato installato .NET 4 e l’applicazione è stata avviata correttamente.

In passato, XCOPY, che installava le applicazioni .NET su una macchina che non aveva la versione corretta di .NET installata, provocava il crash dell’applicazione all’avvio senza alcuna informazione utile presentata all’utente. Perché era diverso questa volta?

  1. È stato incorporato nella mia app perché ho preso di mira .NET X?
  2. Era qualcosa già installato sulla macchina di destinazione?

Adoro la funzione. Voglio sapere esattamente come sfruttarlo in futuro.

Questo è un segreto abbastanza ben tenuto. Accadrà quando si sceglie .NET 4 e l’utente esegue l’app quando .NET 4 non è installato. O quando scegli come target una versione precedente ed esegui l’app su Windows 8. L’utente vedrà questa finestra di dialogo:

inserisci la descrizione dell'immagine qui

Un po ‘troppo gobbledegooky forse, ma comunque bello. È descritto bene in questo post del blog .

Tieni presente che .NET 4 ha una versione minima di Windows e un requisito per i service pack. I minimi sono XP SP3, Vista SP1, Win7 RTM. Quindi questa non è una soluzione magica per installare il service pack giusto.