У меня есть проект на С++, который я переношу с VS2008 на VS2010. Когда я создаю проект, Visual Studio 2010 сообщает сборку как успешную, но если я затем нажму F5, чтобы запустить отладчик, мне сказали, что проект не обновлен. Если я игнорирую это предупреждение, я могу продолжить отладку в порядке, но если я нажму ОК, весь проект (много сотен исходных файлов), будет восстановлен с нуля. Вывод содержит следующее:
1>------ Build started: Project: SCCW-VC2010, Configuration: Debug Win32 ------
1>Build started 15/11/2010 14:47:40.
1>InitializeBuildStatus:
1> Creating "Debug\SCCW-VC2010.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>Midl:
1> All outputs are up-to-date.
1>ClCompile:
1> tinedit.cpp
1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
1> Automatically linking with sfl504d.lib
1> Automatically linking with ot1104d.lib
1>c:\program files\rogue wave\stingray studio 10.4\include\toolkit\sectndlg.h(134): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\string.h(105) : see declaration of 'strcpy'
1> Automatically linking with og1204d.lib
1> Automatically linking with RWUXThemeD10.lib
1> profile.cpp
1> ZOffsetDialog.cpp
Через полчаса после завершения сборки начинается отладчик. Я предполагаю, что сообщение
Создание "Debug\SCCW-VC2010.unsuccessfulbuild", потому что указано "AlwaysCreate".
является частью проблемы, но я не могу связать это с настройкой проекта. Я нашел некоторую помощь в Google, но ничего, что сработало до сих пор. У кого-нибудь еще была эта проблема и вы знаете об исправлении?
Изменить:. В соответствии с предложением Jalf в комментариях ниже я создал новый проект, импортировал все мои файлы в этот проект, и новый проект имеет те же проблемы. В частности, я скопировал все следующие группы:
<ClCompile Include="..\MyDir\MyFile.cpp"/>
<ClInclude Include="..\MyDir\MyFile.h" />
<None Include="res\MyFile.ico" /> (and all similar resources)
<Library Include="..\MyDir\MyFile.lib" />
Edit2: После прохождения всего заголовка я в итоге нашел 3, которых не было. Удаление их и выполнение перестроения всех в исходном проекте, похоже, устранили проблему. Некоторые из сообщений в блоге, в которых упоминается эта проблема, относятся к ней как к ошибке, и через два дня потерянного времени я склонен согласиться. Спасибо за предоставленные ответы и комментарии.
Edit3: И через день проблема вернется! Редактирование любого файла в проекте еще раз вызывает полную перестройку. Согласно ответу Джона Диблинга, проект включает некоторые статические библиотеки, включая Stingray. Я катаюсь на VS2010 и возвращаюсь к VS2008, так как у меня есть крайние сроки. Для получения дополнительной информации см. Следующие ссылки:
VS2010 всегда думает, что проект устарел, но ничего не изменилось
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/38c08137-3bb0-4143-b97f-72d077646318
http://blogs.msdn.com/b/vsproject/archive/2009/07/21/enable-c-project-system-logging.aspx
Final Edit. Освобождение VS2010 SP1 решило эту проблему, и сборки теперь быстрые и эффективные.