Pourquoi côte (WinSxS) installer la politique de mise à niveau automatique quand il y a des problèmes connus entre les versions Windows ne côté?

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

  •  29-08-2019
  •  | 
  •  

Question

Nous avons une application compilé à l'aide MSVC 2K5, SP1 (version 762 msvcrt80)

Tout va bien, jusqu'à jusqu'à ce que quelqu'un installe sur la même machine .Net3.0SP1, et avec elle msvcrt80 la version 1433 est installé et une politique de mise à niveau automatiquement.

Maintenant, nous avons des plantages aléatoires dans tous les sens et des clients mécontents.

Je sais que nous pouvons régler nos fichiers manifestes pour forcer l'utilisation d'une version spécifique, mais je ne l'ai trouvé le moyen vraiment laid de détail de la copie qui est généré automatiquement et en le modifiant à la main. Cela est particulièrement désagréable avec un grand nombre d'applications pour fixer

Peut-on se débarrasser à la place de la politique de « mise à niveau » stupide dans le répertoire WinSxS? Y at-il une option / drapeau pour compiler une version spécifique seulement et encore générer automatiquement les manifestes?

Était-ce utile?

La solution

Trouvez le manifeste généré pour votre version spécifique du tube cathodique. Ensuite, ajoutez un pragma au fichier principal de votre application:

#pragma comment(linker,"/manifestdependency:\"type='win32' "            \
        "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "              \
        "version='" _CRT_ASSEMBLY_VERSION "' "                          \
        "processorArchitecture='x86' "                                  \
        "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top