8
votes

VS2010 reconstruit le projet C ++ en raison de fichiers non pertinents modifiés

Comme nous savons tous déjà que VS2010 a obtenu une mise à niveau majeure de son système de construction, basé sur Msbuild.
Selon les représentants de la SP (voir les commentaires dans Visual Studio 2010 Toujours reconstruire le projet après hibernation / redémarrage de l'ordinateur ) MSBUILD s'injecte maintenant dans d'autres outils (comme C ++ compilateurs, des liaisons, etc.) pour connaître les dépendances d'une cible. L'un des inconvénients d'une telle approche est que maintenant votre projet peut être préalablement reconstruit en raison de modifications des fichiers non pertinents em> :(
Dans mon cas, il est c: \ programdata \ nvidia corporation \ drs \ nvdrsdb0.bin code>, qui est périodiquement modifié par le service de mise à jour NVIDIA (Windows 7 32 bits).

J'ai découvert que en tournant les options VS2010 " MSBuild Project Build Verbosité de la sortie de sortie EM>" et " MSBUILD Projet de version du journal de logiciel Verbosité em>" à " Diagnostic em> ".
Après cela, j'ai pu voir la cause du problème dans la fenêtre de sortie de la version: p>

<ItemGroup>
  <ClNoDependencies Include="NVDRSDB0.BIN" />
  <ClNoDependencies Include="C:\PROGRAMDATA\NVIDIA CORPORATION\DRS\NVDRSDB0.BIN" />
</ItemGroup>


0 commentaires

3 Réponses :


1
votes

J'ai le même problème, sauf que le fichier "modifié" dans mon cas est xxx

Microsoft a admis qu'il y a un bug (qui sera corrigé dans la prochaine version ) et des travaux de contournement suggéré

http://connect.microsoft.com/visualstudio/feedback/details/715572/unexpeected-rebuild-of-projects

http://connect.microsoft.com/visualstudio/feedback/details / 649139 / VS2010-Fichier complet-reconstitué-reconstitué - Fichier entièrement non liés

mais aucun de ceux-ci n'a travaillé pour moi jusqu'à présent. J'essaie toujours de muck avec mon fichier xxx

et ajouter quelque chose comme ce qui suit sur mes feuilles de propriétés xxx

Mais je n'ai eu aucune chance jusqu'à présent. Peut-être que vous pouvez obtenir ce travail pour travailler pour vous? (Laissez-moi savoir si cela fait!)


3 commentaires

Merci pour le partage des informations. Il semble que j'avais vu quelque chose de similaire sur un tableau de forum de Microsoft. Quoi qu'il en soit, l'approche avec les clnodépendances ne fonctionne pas dans VS2010 ... et la version suivante mentionnée est probablement vs2012, qui sort. J'espère que la question sera finalement corrigée puis :)


En fait, j'ai eu cette solution de contournement pour travailler ... surtout. L'astuce consistait à ajouter la définition «sans dépendances» à chaque étape: compiler, lien, ressource, intégré manifeste (je l'ai peut-être oubliée). Je suis arrivé aussi loin que les premiers rats et j'ai vu que mes reconstitutions "supplémentaires" n'effectuent que la ressource et incorporer des étapes manifestes. Donc ... J'étais presque là-bas, puis mon département informatique nous a permis de résoudre le problème en revenant à la version précédente de l'application Sophos Anti-Virus, de sorte que l'ensemble de la question a disparu.


Mise à jour: Sophos a mis en place une solution dans une version ultérieure qui corrige ce problème. Je n'ai plus ce problème avec la version actuelle de Sophos et Visual Studio 2010.



0
votes

Nous avons eu le même problème avec le fichier Sophos config.bops . Nous avons une grande équipe et notre solution contient plus de 80 projets, de sorte que la solution de contournement décrite par d'autres nous était peu attrayante. J'ai pris une approche qui a fonctionné magnifiquement. Certains peuvent dire que c'est un piratage total, que je vais admettre que c'est, mais c'est incroyablement simple et cela fonctionne depuis maintenant jusqu'à ce que Microsoft corrige cela.

J'ai écrit une petite application de plateau de bureau en C # qui surveille le fichier config.bops , et chaque fois que l'horodatage change, il le définit à une date ancienne à l'aide de fichier.setlastwriteetime sans modifier le contenu du fichier. L'application doit être exécutée en tant qu'administrateur sur Windows 7, mais cela nous convient tout au fur et à mesure que notre personnel dispose tous de droits d'administration sur leurs PC. Nous n'avons pas le problème nvdrsdb0.bin , mais je soupçonne que cela pourrait également fonctionner pour ce cas.


0 commentaires

0
votes

J'ai pu me débarrasser de ce problème en ajoutant C: \ ProgramData \ Nvidia Corporation \ DRS \ à la feuille de propriétés utilisateur VC ++ répertoires / interrogatoires d'exclusion.

Pour éditer ce fichier, Ouvrez Affichage-> Gestionnaire de propriétés Il sera sous chaque projet / configuration.

Si vous ne voulez pas faire ce système large, vous pouvez créer une nouvelle feuille de propriétés et l'ajouter uniquement aux projets dont vous avez besoin pour la définir. Vous pouvez sélectionner tous les projets dont vous avez besoin dans le cadre de l'immeuble et le clic droit-> Ajouter une nouvelle feuille de propriétés.


0 commentaires