Visual Studio 2010 pense toujours que le projet est dépassé, mais rien n'a changé

j'ai un problème très similaire comme décrit ici .

j'ai également mis à niveau une solution mixte de C++/CLI et c# projets de Visual Studio 2008 à Visual Studio 2010. Et maintenant dans Visual Studio 2010 un projet C++/CLI est toujours dépassé.

même si elle a été compilée et liée juste avant et F5 est frappé, le messagebox" le projet est dépassé. Aimeriez-vous construire?" apparaît. C'est très gênant parce que le fichier DLL est très bas niveau et force presque tous les projets de la solution à reconstruire.

Mes paramètres de pdb sont définis à la valeur par défaut ( solution suggérée de ce problème ).

est-ce possible la raison pour laquelle Visual Studio 2010 oblige une reconstruction ou pense qu'un projet est à jour?

D'autres idées pourquoi Visual Studio 2010 se comporte-t-il ainsi?

187
demandé sur Peter Mortensen 2010-05-04 09:06:06

27 réponses

Pour Visual Studio Express 2010. Voir d'autres réponses (plus faciles) pour VS2012, VS2013, etc

Pour trouver le fichier manquant(s) , l'utilisation des informations à partir de l'article Activer le C++ projet de système de journalisation pour activer la journalisation du débogage dans Visual Studio et la laisser juste vous dire quelle est la cause de la reconstruction:

  1. ouvrir le fichier devenv.exe.config (trouvé dans %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\ ou dans %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\ ). Pour les versions Express, le fichier de configuration s'appelle V*Express.exe.config .
  2. ajouter ce qui suit après la ligne </configSections> :

    <system.diagnostics>
      <switches>
        <add name="CPS" value="4" />
      </switches>
    </system.diagnostics>
    
  3. Redémarrer Visual Studio
  4. ouvrir DbgView et s'assurer qu'il est la capture de sortie de débogage
  5. Essayez de déboguer (appuyez sur F5 dans Visual Studio)
  6. Rechercher dans le journal de débogage toutes les lignes du formulaire:

    devenv.exe Renseignements: 0 : Projet " Bla\Bla\Factice.vcxproj "pas à jour en raison de l'entrée de construction" Bla\Bla\SomeFile.h' est manquant.

    (je viens de cliquer Ctrl+F et j'ai cherché not up to date ) ce seront les références qui feront que le projet sera perpétuellement"dépassé".

pour corriger ceci, soit supprimer toute référence vers les fichiers manquants de votre projet, ou mettre à jour les références pour indiquer leur emplacement réel.

Note: Si vous utilisez 2012 ou plus tard, l'extrait doit être:

<system.diagnostics>
  <switches>
   <add name="CPS" value="Verbose" />
  </switches>
</system.diagnostics>
221
répondu Mosc 2017-05-23 12:18:16

dans Visual Studio 2012 j'ai pu obtenir le même résultat plus facilement que dans la solution acceptée.

j'ai changé l'option dans le menu Outils Options les Projets et les Solutions Build and Run → *projet MSBuild la sortie de la construction de verbosité" à partir de Minimal à Diagnostic .

puis dans la construction sortie, j'ai trouvé le même sens par la recherche pour "non à jour":

Projet "blabla" n'est pas à jour. Point du projet "c:\foo\bar.xml' a 'Copier vers le Répertoire de Sortie' attribut 'Copy'.

162
répondu Stanislav 2017-11-07 18:22:11

cela m'est arrivé aujourd'hui. J'ai pu retrouver la cause: le projet incluait un fichier d'en-tête qui n'existait plus sur le disque.

la suppression du fichier du projet a résolu le problème.

59
répondu Dave 2010-05-18 00:32:48

nous nous sommes également penchés sur cette question et avons découvert comment la résoudre.

La question était comme indiqué ci-dessus "Le fichier n'existe plus sur le disque."

ce n'est pas tout à fait correct. Le fichier existe sur le disque dur, mais l' .Le fichier VCPROJ renvoie au fichier ailleurs.

vous pouvez 'découvrir' cela en allant dans la "vue du fichier include" et en cliquant sur chaque fichier include tour à tour jusqu'à ce que vous trouviez celui que Visual Studio peut pas trouver. Vous ajoutez alors ce fichier (comme un élément existant) et supprimez la référence qui ne peut pas être trouvée et tout est OK.

une question valide est: comment Visual Studio peut-il même construire s'il ne sait pas où sont les fichiers include?

Nous pensons que le .le fichier vcproj a un chemin relatif vers le fichier incriminé quelque part qu'il ne montre pas dans L'interface graphique de Visual Studio, et cela explique pourquoi le projet va réellement construire même si la vue d'arbre de les inclusions sont incorrectes.

15
répondu Zach 2017-11-07 17:54:16

la réponse acceptée m'a aidé sur la bonne voie à comprendre comment résoudre ce problème pour le projet raté que j'ai dû commencer à travailler avec. Cependant, j'ai dû faire face à un très grand nombre de Bad include headers. Avec la sortie du débogage verbeux, la suppression de l'un d'eux a fait geler l'IDE pendant 30 secondes tout en déboguant le débogage spew, ce qui a rendu le processus très lent.

j'ai Été impatient et j'ai écrit un script Python rapide et sale pour vérifier (Visual Studio 2010) fichiers de projet pour moi et sortie de tous les fichiers manquants à la fois, avec les filtres qu'ils se trouvent. Vous pouvez le trouver comme un Gist ici: https://gist.github.com/antiuniverse/3825678 (ou cette" fourche 151970920 "qui supporte les chemins relatifs )

exemple:

D:\...> check_inc.py sdk/src/game/client/swarm_sdk_client.vcxproj
[Header Files]:
  fx_cs_blood.h   (cstrike\fx_cs_blood.h)
  hud_radar.h   (cstrike\hud_radar.h)
[Game Shared Header Files]:
  basecsgrenade_projectile.h   (..\shared\cstrike\basecsgrenade_projectile.h)
  fx_cs_shared.h   (..\shared\cstrike\fx_cs_shared.h)
  weapon_flashbang.h   (..\shared\cstrike\weapon_flashbang.h)
  weapon_hegrenade.h   (..\shared\cstrike\weapon_hegrenade.h)
  weapon_ifmsteadycam.h   (..\shared\weapon_ifmsteadycam.h)
[Source Files\Swarm\GameUI - Embedded\Base GameUI\Headers]:
  basepaenl.h   (swarm\gameui\basepaenl.h)
  ...

code Source:

#!/c/Python32/python.exe
import sys
import os
import os.path
import xml.etree.ElementTree as ET

ns = '{http://schemas.microsoft.com/developer/msbuild/2003}'

#Works with relative path also
projectFileName = sys.argv[1]

if not os.path.isabs(projectFileName):
   projectFileName = os.path.join(os.getcwd(), projectFileName)

filterTree = ET.parse(projectFileName+".filters")
filterRoot = filterTree.getroot()
filterDict = dict()
missingDict = dict()

for inc in filterRoot.iter(ns+'ClInclude'):
    incFileRel = inc.get('Include')
    incFilter = inc.find(ns+'Filter')
    if incFileRel != None and incFilter != None:
        filterDict[incFileRel] = incFilter.text
        if incFilter.text not in missingDict:
            missingDict[incFilter.text] = []

projTree = ET.parse(projectFileName)
projRoot = projTree.getroot()

for inc in projRoot.iter(ns+'ClInclude'):
    incFileRel = inc.get('Include')
    if incFileRel != None:
        incFile = os.path.abspath(os.path.join(os.path.dirname(projectFileName), incFileRel))
        if not os.path.exists(incFile):
            missingDict[filterDict[incFileRel]].append(incFileRel)

for (missingGroup, missingList) in missingDict.items():
    if len(missingList) > 0:
        print("["+missingGroup+"]:")
        for missing in missingList:
            print("  " + os.path.basename(missing) + "   (" + missing + ")")
12
répondu Neverender 2017-11-07 18:10:38

j'ai supprimé un cpp et quelques fichiers d'en-tête de la solution (et du disque) mais j'avais encore le problème.

la chose est, chaque fichier que le compilateur utilise va dans un *.fichier tlog dans votre répertoire temp. Lorsque vous supprimez un fichier, ce *.tlog fichier n'est pas mis à jour. C'est le fichier utilisé par des versions pour vérifier si votre projet est à jour.

éditez ceci .tlog fichier manuellement ou nettoyer votre projet et à reconstruire.

7
répondu Alexandre Pelletier 2012-03-20 20:11:47

j'ai eu un problème similaire, mais dans mon cas il n'y avait pas de fichiers manquants, il y avait une erreur dans la façon dont le fichier de sortie pdb était défini: j'ai oublié le suffixe .pdb (j'ai découvert avec le truc de débogage).

pour résoudre le problème j'ai changé, dans le fichier vxproj, la ligne suivante:

<ProgramDataBaseFileName>MyName</ProgramDataBaseFileName>

à

<ProgramDataBaseFileName>MyName.pdb</ProgramDataBaseFileName>
6
répondu JJTh 2012-03-02 10:49:22

j'ai eu ce problème dans VS2013 (Update 5) et il peut y avoir deux raisons à cela, les deux que vous pouvez trouver en activant la sortie de construction" détaillée "sous"Outils"->"projets et Solutions"->"construire et exécuter".

  1. "Forcing recompile of all source files due to missing PDB "..."

    Cela se produit lorsque vous désactivez la sortie de l'information de débogage dans les options de votre compilateur (dans les paramètres du projet: "C / C++"->"débogage information Format" à "None" et "Linker"- > "générer des informations de débogage" à "Aucun.) :" Si vous avez laissé "C/C++"->"Nom de fichier de la base de données du programme" à la valeur par défaut (qui est "$(IntDir)vc$(PlatformToolsetVersion).pdb"), VS ne trouvera pas le fichier à cause d'un bug ( https://connect.microsoft.com/VisualStudio/feedback/details/833494/project-with-debug-information-disabled-always-rebuilds ).

    Pour corriger, il suffit d'effacer le nom du fichier à "" (champ vide).

  2. "Forcing rebuild of all source files due to a change in the command line since the last build."

    Cela semble être un bug VS connu aussi ( https://connect.microsoft.com/VisualStudio/feedback/details/833943/forcing-rebuild-of-all-source-files-due-to-a-change-in-the-command-line-since-the-last-build ) et semble être corrigé dans les versions plus récentes (mais pas VS2013). Je n'ai connu aucun contournement, mais si vous le faites, par tous les moyens, postez-le ici.

6
répondu Bim 2015-09-18 14:22:38

Je ne sais pas si quelqu'un d'autre a ce même problème, mais les propriétés de mon projet avaient "Configuration Properties" -> C/C++ -> "Debug Information Format" défini à" None", et quand je l'ai commuté de nouveau à la" base de données de programme (/Zi) " par défaut, qui a empêché le projet de recompiler chaque fois.

4
répondu paulie4 2014-10-21 20:23:55

une solution simple référencée par Visual Studio Forum .

Changer la configuration: menu Outils Options les Projets et les Solutions Projet VC++ Paramètres l'Explorateur de solutions en Mode à Afficher tous les fichiers .

alors vous pouvez voir tous les fichiers dans Solution Explorer.

Trouvez les fichiers marqués par l'icône jaune et supprimez-les du projet.

C'est bon.

4
répondu Christophe 2017-11-07 18:27:42

j'ai rencontré ce problème aujourd'hui, cependant, c'était un peu différent. J'avais un projet CUDA DLL dans ma solution. Compiler dans une solution propre était OK, mais sinon ça a échoué et le compilateur a toujours traité le projet CUDA DLL comme n'étant pas à jour.

j'ai essayé la solution de ce post .

mais il n'y a pas de fichier d'en-tête manquant dans ma solution. Puis j'ai découvert la raison dans mon cas.

j'ai changé le répertoire intermédiaire du projet avant, bien qu'il n'ait pas causé de problèmes. et maintenant que j'ai changé le répertoire intermédiaire du projet CUDA DLL de nouveau à $(Configuration)\, tout fonctionne à nouveau correctement.

je suppose qu'il y a un petit problème entre la personnalisation de Cuda Build et le répertoire intermédiaire non par défaut.

3
répondu Mass Zhou 2017-11-07 18:12:56

j'ai eu le même problème et j'ai suivi les instructions ci-dessus (la réponse acceptée) pour trouver les fichiers manquants, mais pas sans me gratter la tête. Voici un résumé de ce que j'ai fait. Pour être précis, ce ne sont pas des fichiers manquants car ils ne sont pas requis par le projet de construire (au moins dans mon cas), mais ce sont des références à des fichiers qui n'existent pas sur le disque qui ne sont pas vraiment nécessaires.

Voici mon histoire:

  1. sous Windows 7 le fichier est situé à %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\% . Il existe deux fichiers similaires devenv.exe.config.config et devenv.exe.config . Vous souhaitez changer plus tard.

  2. sous Windows 7, vous n'avez pas la permission de modifier ce fichier étant dans des fichiers de programme. Il suffit de le copier ailleurs (bureau) le changer et de le recopier à l'emplacement des fichiers de programme.

  3. j'essayais de trouver comment connecter DebugView à L'IDE pour voir les fichiers manquants. Eh bien, vous n'avez pas à faire quoi que ce soit. Lancez-le, et il capturera tous les messages. Assurez-vous que l'option de menu Capture Events est sélectionnée dans le menu Capture qui par défaut doit être sélectionnée.

  4. DebugView N'affichera pas tous les fichiers manquants à la fois (du moins pas pour moi)! Vous auriez Débugview en cours d'exécution et ensuite exécuter le projet dans Visual Studio 2010. Il activez le message project out of date , sélectionnez Oui pour construire et Débugview affichera le premier fichier manquant ou à l'origine de la reconstruction. Ouvrez le fichier projet (pas le fichier solution) dans Bloc-Notes et recherchez ce fichier et supprimez-le. Vous êtes mieux de fermer votre projet et de le rouvrir à nouveau tout en faisant cette suppression. Répétez ce processus jusqu'à ce que DebugView ne montre plus de fichiers manquants.

  5. Il est en quelque sorte utile de configurer le filtre de message à pas à jour à partir du bouton de la barre D'outils de DebugView ou modifier filtrer/surligner option. De cette façon, les seuls messages qu'il affiche sont l'un qui a des "pas à jour" de la chaîne.

j'ai eu beaucoup de dossiers qui étaient des références inutiles et les enlevant tous corrigé la question en suivant les étapes ci-dessus.

deuxième moyen de trouver tous les fichiers manquants à la fois

il y a une seconde façon de trouver ces fichiers à la fois, mais elle implique (a) le contrôle des sources et (b) l'intégration de celui-ci avec Visual Studio 2010. en utilisant Visual Studio 2010 , ajoutez votre projet à un emplacement désiré ou un emplacement fictif dans le contrôle source. Il va essayer d'ajouter tous les fichiers, y compris ceux qui n'existent pas sur le disque, mais référencé dans la fichier de projet. Allez à votre logiciel de contrôle des sources comme Perforce , et il devrait marquer ces fichiers qui n'existent pas sur le disque dans un arrangement de couleur différent. Forcement les montre avec une serrure noire sur eux. Ce sont vos références manquantes. Maintenant, vous avez une liste de tous, et vous pouvez tous les supprimer de votre dossier de projet en utilisant le bloc-notes et votre projet ne se plaindrait pas d'être périmé .

3
répondu zar 2017-11-07 18:20:27

Visual Studio 2013 -- "Forcer recompiler tous les fichiers source en raison du manque de APB". J'ai activé la sortie de construction détaillée pour localiser le problème: j'ai activé la sortie de construction "détaillée" sous "Outils" → "projets et Solutions" → "construire et exécuter".

j'ai eu plusieurs projets, tous C++, j'ai mis l'option pour sous les paramètres de projet: (C/C++ → déboguer le Format D'Information) à la base de données de programme (/Zi) pour le projet de problème. Toutefois, cela n'a pas arrêté le problème pour ce projet. Le le problème vient de L'un des autres projets C++ de la solution.

j'ai mis tous les projets C++ pour "un Programme de Base de données (/Zi)". Le problème est résolu.

encore une fois, le projet signalant le problème n'était pas le projet problème. Essayez de définir tous les projets à" base de données de programme (/Zi) " pour corriger le problème.

3
répondu user3097514 2017-11-07 18:35:55

Pour moi, c'était la présence d'un non-existant fichier d'en-tête "Fichiers d'en-Tête" à l'intérieur du projet. Après avoir supprimé cette entrée (clic droit > exclure du projet) recompilé pour la première fois, puis directement

========== Génération: 0 a réussi, 0 a échoué, 5 à jour, 0 a été ignoré ==========

et aucune tentative de reconstruction sans modification n'a été faite. Je pense que c'est un check-before-build mis en œuvre par VS2010 (pas sûr si documenté, pourrait être) qui déclenche le drapeau" always Screate".

2
répondu Cristian Amarie 2011-10-28 12:29:07

si vous utilisez la commande MSBuild en ligne de commande (pas L'IDE Visual Studio), par exemple si vous ciblez AppVeyor ou si vous préférez simplement la ligne de commande, vous pouvez ajouter cette option à votre ligne de commande MSBuild:

/fileLoggerParameters:LogFile=MyLog.log;Append;Verbosity=diagnostic;Encoding=UTF-8

documenté ici (avertissement: d'habitude MSDN verbosité). Lorsque la construction est terminée, cherchez la chaîne de caractères will be compiled dans le fichier journal créé pendant la construction, MyLog.log .

2
répondu qris 2015-12-08 22:31:16

J'utilise Visual Studio 2013 Professional avec la mise à jour 4 mais je n'ai trouvé de solution avec aucune des autres suggestions, cependant, j'ai réussi à résoudre le problème pour mon projet D'équipe.

voici ce que j'ai fait pour causer le problème -

  • a Créé un nouvel objet de classe (du Projet -> Ajouter une Classe)
  • renommé le fichier via Solution Explorer et cliqué oui quand on me demande si je voulais automatiquement renommer toutes les références pour correspondre à

voici ce que j'ai fait pour résoudre le problème -

  • Aller à l'Équipe de l'Explorateur à la Maison
  • Cliquez Sur Source Control Explorer
  • percer dans le dossier où tous les fichiers de classe/projet sont
  • a trouvé le nom du fichier ORIGINAL dans la liste et l'a supprimé en cliquant avec le bouton droit de la souris
  • Construire

si tel est votre cas alors assurez-vous simplement que vous supprimez le fichier fantôme plutôt que le fichier réel que vous voulez garder dans le projet.

2
répondu Joshua Barker 2015-12-24 01:56:23

j'ai eu ce problème et j'ai trouvé ceci:

http://curlybrace.blogspot.com/2005/11/visual-c-project-continually-out-of.html

Projet Visual C++ continuellement out-of-date ( winwlm.h macwin32.h rpcerr.h macname1.h manquant)

problème:

dans Visual C++ .Net 2003, un de mes projets a toujours prétendu être dépassé, même si rien n'avait changé et aucune erreur n'avait été signalé dans la dernière version.

ouverture du BuildLog.le fichier htm du projet correspondant montrait une liste D'erreurs PRJ0041 pour ces fichiers, dont aucune n'apparaît sur mon système où que ce soit: winwlm.h macwin32.h rpcerr.h macname1.h

chaque erreur ressemble à quelque chose comme ceci:

  MyApplication : warning PRJ0041 : Cannot find missing dependency 'macwin32.h' for file 'MyApplication.rc'.  

votre projet peut encore être construit, mais peut continuer à apparaître périmé jusqu'à ce que ce fichier soit trouvé.

Solution:

inclut afxres.h au lieu de resource.h à l'intérieur du projet .dossier rc.

Du projet .rc fichier "#include ressource.h." Puisque le compilateur de ressources n'honore pas les blocs de préprocesseur #ifdef , il va déchirer et essayer de trouver des fichiers include qu'il devrait ignorer. Windows.h contient beaucoup de tels blocs. Y compris afxres.h a plutôt corrigé les Avertissements PRJ0041 et éliminé le " projet est périmé" boîte de dialogue d'erreur.

1
répondu Mehrdad 2012-04-23 06:30:14

Dans mon cas, l'un des projets contient plusieurs fichiers IDL. Le compilateur MIDL génère un fichier DLL appelé "dlldata".c' pour chacun d'eux, quel que soit le nom du fichier IDL. Cela a amené Visual Studio à compiler les fichiers IDL sur chaque Compilation, même sans modification des fichiers IDL.

la solution consiste à configurer un fichier de Sortie unique pour chaque fichier IDL (le compilateur MIDL génère toujours un tel fichier, même si le commutateur /dlldata est omis).):

  • clic droit sur le fichier IDL
  • sélectionner propriétés-MIDL-Output
  • entrer un nom de fichier unique pour le fichier DllData propriété
1
répondu Sven Vranckx 2014-12-03 21:09:42

j'ai passé beaucoup d'heures à m'arracher les cheveux à cause de ça. Le résultat de la compilation n'était pas uniforme; différents projets "n'étaient pas à jour" pour différentes raisons d'une compilation à l'autre. J'ai finalement découvert que le coupable était DropBox (3.0.4). Je connecte mon dossier source à partir ...\DropBox dans le dossier de mes projets (je ne sais pas si c'est la raison), mais DropBox "touche" d'une manière ou d'une autre les fichiers pendant une compilation. Synchronisation interrompue et tout est toujours à jour.

1
répondu avenmore 2015-01-20 19:09:06

il y a pas mal de raisons potentielles et - comme indiqué - vous devez d'abord les diagnostiquer en mettant la verbosité de MSBuild à 'Diagnostic'. La plupart du temps, la raison énoncée serait explicite et vous seriez en mesure d'agir immédiatement, mais parfois MSBuild prétendrait à tort que certains fichiers sont modifiés et doivent être copiés.

si c'est le cas, vous devez désactiver le tunneling NTFS ou dupliquer votre dossier de sortie vers un nouvel emplacement. voici plus de mots.

1
répondu Ofek Shilon 2015-08-16 17:46:42

pour moi, le problème s'est posé dans un projet du FPF où certains fichiers avaient leur propriété "Build Action" définie à "Resource" et leur "Copy to Output Directory" définie à "Copy if newer". La solution semblait être de changer la propriété 'Copy to Output Directory' en 'ne pas copier'.

msbuild sait qu'il ne faut pas copier les fichiers 'Resource' dans la sortie - mais déclenche quand même une compilation s'ils n'y sont pas. Peut-être que ça pourrait être considéré comme un bug?

c'est immensément utile avec les réponses ici allusion comment obtenir msbuild renverser les haricots sur pourquoi il continue de construire tout!

1
répondu LOAS 2018-02-13 13:08:27

si vous modifiez les arguments de la commande de débogage pour le projet, cela déclenchera également le message project needs to be Rebuild. Même si la cible elle-même n'est pas affectée par les arguments de débogage, les propriétés du projet ont changé. Si vous reconstruisez, le message devrait disparaître.

0
répondu Cathy 2015-11-05 01:48:07

cela m'est arrivé à plusieurs reprises et puis est parti, avant que je puisse comprendre pourquoi. Dans mon cas, c'était:

mauvais temps système dans la configuration de démarrage double!

S'avère, ma botte double avec Ubuntu était la cause profonde!! J'ai été trop paresseux pour réparer Ubuntu pour arrêter de jouer avec mon horloge matérielle. Quand je me connecte à Ubuntu, le temps saute 5 heures en avant.

par malchance, j'ai construit le projet une fois, avec la mauvaise heure du système, puis corrigé l'heure. En conséquence, tous les fichiers de compilation avaient de mauvais horodateurs, et VS penserait qu'ils sont tous périmés et reconstruirait le projet.

0
répondu M2X 2016-12-03 03:53:58

la plupart des systèmes de compilation utilisent des horodateurs de données pour déterminer quand les reconstructions doivent se produire - l'horodatage de n'importe quel fichier de sortie est vérifié par rapport à la dernière heure modifiée des dépendances - si n'importe laquelle des dépendances sont plus récentes, alors la cible est reconstruite.

Cela peut causer des problèmes si l'une des dépendances en quelque sorte une défaillance de données d'horodatage comme il est difficile pour l'horodatage de la sortie de la construction à jamais dépasser l'horodatage d'un fichier soi-disant créé dans le futur: p

0
répondu Chris Becke 2017-11-07 17:49:20

J'ai eu un problème similaire avec Visual Studio 2005, et ma solution consistait en cinq projets dans la dépendance suivante (d'abord construit en haut):

Video_Codec depends on nothing
Generic_Graphics depends on Video_Codec
SpecificAPI_Graphics depends on Generic_Graphics
Engine depends on Specific_Graphics
Application depends on Engine.

je trouvais que le projet Video_Codec voulait une construction complète même après un nettoyage complet puis la reconstruction de la solution.

j'ai corrigé cela en m'assurant que le fichier de sortie pdb du C/C++ et du linker correspondait à l'emplacement utilisé par les autres projets de travail. J'ai aussi changé RTTI on.

0
répondu Hinchy 2017-11-07 18:07:53

un autre sur Visual Studio 2015 SP3, mais J'ai rencontré un problème similaire sur Visual Studio 2013 il y a quelques années.

mon problème était qu'un fichier RPC erroné était utilisé pour des en-têtes précompilés (donc j'avais deux fichiers RPC qui ont créé les en-têtes précompilés). Maintenant, pourquoi Visual Studio a-t-il changé les drapeaux sur le mauvais cpp pour "créer des en-têtes précompilés" sans ma demande, je n'en ai aucune idée, mais cela s'est produit... peut-être que certains plugin ou quelque chose???

quoi qu'il en soit, le mauvais fichier cpp inclut la version.h fichier qui est modifié à chaque génération. Donc Visual Studio reconstruit tous les en-têtes et à cause de cela tout le projet.

maintenant, c'est redevenu normal.

0
répondu Waldemar 2017-11-07 18:38:53

les projets.Net sont toujours recompilés, indépendamment de leur nature. Une partie de cela est de garder L'IDE à jour (comme IntelliSense). Je me souviens avoir posé cette question sur un forum Microsoft il y a des années, et c'est la réponse qui m'a été donnée.

-3
répondu Preet Sangha 2017-11-07 17:48:12