web-dev-qa-db-fra.com

Visual Studio 2013: CL.exe arrêté avec le code -1073741515

J'ai installé fresh Windows 8.1 Pro x64 avec un fresh Visual Studio 2013. Lorsque vous essayez de compiler un projet avec Platform Toolset vers Windows7.1SDK I'm obtenir

Error   1   error MSB6006: "CL.exe" exited with code -1073741515.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.targets   57  5   MenuBrowser

J'ai essayé d'exécuter "l'outil de configuration du SDK Windows" fourni et, outre l'erreur d'erreur concernant l'installation de Visual Studio 2005 et 2008, je pense qu'il a fait son travail.

J'ai essayé de modifier manuellement le registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows

où je mets manuellement CurrentInstallFolder comme C:\Program Files\Microsoft SDKs\Windows\v7.1\ et CurrentVersion comme 7.1.7600.0.30514. Si je regarde les propriétés du projet et que je clique sur les différents chemins/variables qu'il contient -> plus -> Macros, je constate que $ (WindowsSdkDir) est correct.

Une idée de ce que je devrais essayer? Jamais rencontré ce problème sur le vieil ordinateur de développement avec Windows 7 et VS 2012.

L.E. note, si j'essaye un nouveau projet avec les outils v120, cela fonctionne, mais j'ai besoin des outils Windows7.1SDK.

10
foxx1337

Lorsque vous essayez de compiler un projet avec Platform Toolset vers Windows7.1SDK ...

Ce n'est pas une sélection valide dans une installation "récente" pour VS2013. Ce que vous avez fait n'est pas très clair, ce n'est certainement plus "frais". Ne traitez pas Regedit.exe comme une arme chargée, le jeu de clés de registre qui configure VS a été compliqué à la fin.

Le compilateur se bloque avec -1073741515 == 0xC0000135 == STATUS_DLL_NOT_FOUND. C’est un incident assez grave, bien sûr, il devrait jamais se produire lorsque vous ciblez le SDK 7.1, car il utilise toujours le même compilateur, seul le répertoire du SDK est modifié. Le compilateur lui-même, ainsi que les DLL qu'il utilise, ne font pas partie du SDK et ne sont fournis que si l'ordinateur n'a pas de VS installé. Vous pouvez utiliser le moniteur de processus de SysInternals pour diagnostiquer ce problème. Le processus CL.EXE recherche le fichier DLL et ne le recherche pas.

Le moyen correct de cibler 7.1 consiste à utiliser la sélection de jeu d’outils v120_xp. Cela crée des programmes qui peuvent toujours fonctionner sous XP, il sélectionne également automatiquement le SDK 7.1A installé sur votre ordinateur. Essayez d’annuler les modifications que vous avez apportées.

10
Hans Passant

Référencement de la solution Yodans à partir de Comment construire avec le jeu d’outils de la plate-forme v90 dans VS2012 sans VS2008, à l’aide de Windows SDK? :

Comme l'a souligné Hans Passant, cl.exe recherche mspdb100.dll (entre autres) et ne les trouve pas. Les fichiers nécessaires se trouvent dans le répertoire mentionné en 7. ci-dessous:

Ma configuration de travail:

  1. VS2013 doit utiliser les librairies VS2010
  2. Utilisation des outils de génération WinSDK 7.1 (v100) dans VS2013
  3. installation propre, désinstallation de tout ce qui est mentionné dans les notes de publication de sdk (peut être téléchargé à l’adresse http://www.Microsoft.com/en-us/download/details.aspx?id=8279 dans la catégorie Détails)
    1. Microsoft Windows SDK pour Windows 7 (7.1) (les fichiers de composants principaux du SDK Windows)
    2. Vérificateur d'applications
    3. Outils de débogage pour Windows
    4. Boîte à outils de performance Windows 
    5. Microsoft Help Viewer 1.0
    6. Microsoft Visual C++ 2010 redistribuable
    7. Microsoft Visual C++ 2010 Standard Edition
    8. Suppression supplémentaire de tous les logiciels MS liés à .NET et VC++ (non testés si nécessaire)
  4. choisissant Windows7.1SDK comme jeu d'outils de plate-forme dans VS2013
  5. error MSB6006: "CL.exe" a été quitté avec le code -1073741515
  6. cl.exe recherche l'un des fichiers msobj100.dll, mspdb100.dll, mspdbcore.dll et mspdbsrv.exe
  7. Ajouté à PATH: C:\Fichiers de programme (x86)\Microsoft Visual Studio 10.0\Common7\IDE
  8. Construire fonctionne et binaire est utilisable!

Une erreur que j'ai faite: 

  1. fichiers copiés dans 6. ci-dessus dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin, en pensant que ce répertoire est dans PATH, mais ce n’était pas le cas! 
  2. Il vaut donc mieux faire comme indiqué dans le numéro 7 ci-dessus ou par Yodan dans Comment construire avec le jeu d'outils de la plate-forme v90 dans VS2012 sans VS2008, à l'aide du kit de développement logiciel (SDK) Windows?
5
Kai Schubert

Les étapes suivantes fonctionnent pour moi dans VS 2017.

1. Fermez VS 2017. 2. Redémarrez la machine. 3.Ouvrez la solution dans VS 2017. 4.Construisez le projet. Cette fois, je n'ai pas t obtenir l’erreur suivante et elle se construit avec succès.

error msb6006 "link.exe" s'est terminé avec le code -1073741819.

0
Pabitra Dash