Perché finestre affiancate (WinSxS) installare la politica per l'aggiornamento automatico quando non ci sono problemi noti tra le versioni?

StackOverflow https://stackoverflow.com/questions/397196

  •  29-08-2019
  •  | 
  •  

Domanda

Abbiamo un app compilato utilizzando MSVC 2K5, SP1 (versione 762 msvcrt80)

Tutto va bene, fino a quando qualcuno viene installato sulla stessa macchina di .Net3.0SP1, e con essa è installata la versione msvcrt80 1433 e una politica per l'aggiornamento automatico.

Ora abbiamo crash casuali in tutto il luogo e clienti infelici.

ho capito che possiamo regolare i nostri file manifesto per forzare l'utilizzo di una versione specifica, ma ho trovato solo il modo davvero brutto di dettagli la copia che viene generato automaticamente e modificando a mano. Questo è particolarmente sgradevole con un gran numero di applicazioni per risolvere

Possiamo invece sbarazzarci del 'aggiornamento' della politica stupida nella directory WinSxS? C'è la possibilità / bandierina per compilare per una versione specifica solo e ancora generare i manifesti? Automaticamente

È stato utile?

Soluzione

Trova il manifesto generato per la versione specifica del CRT. Quindi aggiungere un pragma al file principale dell'applicazione:

#pragma comment(linker,"/manifestdependency:\"type='win32' "            \
        "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "              \
        "version='" _CRT_ASSEMBLY_VERSION "' "                          \
        "processorArchitecture='x86' "                                  \
        "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top