VS2010 перестраивает проект C ++ из-за измененных нерелевантных файлов

Как все мы уже знаем, VS2010 получил серьезное обновление своей системы сборки, которая основана на MSBuild.
По словам представителей MS (см. Комментарии в Visual Studio 2010 всегда перестраивает проект после гибернации / перезапуска компьютера ) MSBuild теперь внедряется в другие инструменты (например, компиляторы C ++, компоновщики и т. Д.), Чтобы узнать зависимости цель.
Одним из недостатков такого подхода является то, что теперь ваш проект может быть принудительно перестроен из-за изменений в нерелевантных файлах : (
В моем случае это C: \ PROGRAMDATA \ NVIDIA CORPORATION \ DRS \ NVDRSDB0.BIN , который периодически изменяется службой обновлений NVIDIA (32-разрядная версия Windows 7).

Я обнаружил, что, установив параметры VS2010 « Подробность вывода сборки проекта MSBuild » и « Подробность файла журнала сборки проекта MSBuild » на « Диагностика ») .
После этого я смог увидеть причину проблемы в окне вывода сборки:

Task "CL" (TaskId:55)
  Read Tracking Logs: (TaskId:55)
    ..\..\temp\Release\Editor\cl.read.1.tlog (TaskId:55)
  Outputs for E:\USERS\A.USER.ORG\DEVEL\EDITOR\STDAFX.CPP: (TaskId:55)
E:\USERS\A.USER.ORG\DEVEL\TEMP\RELEASE\EDITOR\STDAFX.OBJ (TaskId:55)
  C:\PROGRAMDATA\NVIDIA CORPORATION\DRS\NVDRSDB0.BIN was modified at 23-Feb-12 12:08:20. (TaskId:55)
 stdafx.cpp will be compiled. (TaskId:55)
...
 Tracking command: (TaskId:55)
 C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\Tracker.exe ... stdafx.cpp /clr:nostdlib  (TaskId:55)
 stdafx.cpp (TaskId:55)
Done executing task "CL". (TaskId:55)

Один из обходных путей - добавить нерелевантные файлы в список игнорирования C ++ :


  
  

К сожалению, это не так. help :( И я еще не проверял, как эта уловка работает на других ПК, где таких файлов нет.

Таким образом, остается вопрос: кто-нибудь знает о рабочем решении этой проблемы ?

Я не пробовал устанавливать SP1 для VS2010 - по мнению энтузиастов, этот шаг тоже не помогает.
Отключение службы обновления NVIDIA, вероятно, может помочь (она перестанет обновлять файл), но есть или может быть другое программное обеспечение, которое нельзя отключить таким образом (антивирус, другие утилиты и т. Д.).
См. Также связанные вопросы:

8
задан Community 23 May 2017 в 12:19
поделиться