Миграция Visual Studio 2005 sln в 2008, предупреждение с путями vc98 в переменной среды LIB, как исправить?
я переношу решение из visual studio 2005 в visual studio 2008. Когда я создаю решение в 2005 году, у меня нет никаких проблем. Однако после использования devenv.exe / Upgrade, а затем использовать msbuild в решении, я получаю следующие предупреждения:
CSC: предупреждение CS1668: недопустимый путь поиска "vc98lib", указанный в переменной среды " LIB " -- " система не может найти указанный путь.' КБК : предупреждение CS1668: недопустимый путь поиска 'vc98МФЦЛиб' указывает 'Либ переменная окружения ' -- ' система не может найти указанный путь. ' CSC: предупреждение CS1668: неверный путь поиска 'c:program filesmicrosoft visual studio 9.0vcplatformsdklib', указанный в переменной среды ' LIB ' -- ' система не может найти указанный путь.'
Я проверил http://social.msdn.microsoft.com/Forums/en-US/Vsexpressinstall/thread/3f875480-fee2-4bc3-b829-95e220b22a01 и он не предлагает мне никакой помощи, потому что мой LIB и включает среду переменные не задаются ни в пользовательских, ни в системных vars. Я просмотрел инструменты студии > параметры > проекты и решения> каталоги VC++, и нет ничего, что ссылается на что-либо старое:
Библиотека Файлов: $ (VCInstallDir)lib $(VCInstallDir)atlmfclib $(VCInstallDir)atlmfclibi386 $(WindowsSdkDir)lib $ (FrameworkSDKDir)lib $(VSInstallDir) $(VSInstallDir)lib
включить файлы:
$(VCInstallDir)включают $(VCInstallDir)atlmfcinclude $(WindowsSdkDir)включают $(FrameworkSDKDir)включают в себя
Я использовал диагностический вывод, чтобы точно видеть, что включает переменная LIB при вызове:
Либ = c:Program файлыМайкрософт Visual студии 9.0ВКATLMFCЛиб;c:Program файлыМайкрософт Visual студии 9.0ВКЛиб;C:Program файлыMicrosoft пакет SDK папкеWindowsV6 двигателем.0АЛиб;vc98lib в;vc98МФЦЛиб;файлы c:program Майкрософт Visual студии 9.0 ВКplatformsdkЛиб;c:program файлыМайкрософт Visual студии 9.0ВКЛиб;c:program файлыМайкрософт Visual студии 9.0ВКatlmfcЛиб; Переменной libpath = c:WindowsMicrosoft.NETFrameworkv3.5;c:WindowsMicrosoft.NETFrameworkv2.0.50727;c:Program файлыМайкрософт Visual студии 9.0ВКATLMFCЛиб;c:Program файлыMicrosoft визуального Studio9.0 ВКЛиб
поэтому, если этот vc98 не находится в моих env vars, или Мои настройки студии, и vc98 даже не установлен( ни redist), где этот путь от? Какой процесс устанавливает LIB env var таким образом?
5 ответов
нашли на MSDN:
Да это известная проблема, которая возникает некоторым людям. Посмотрите внимательно в ваш путь LIB. Сразу после ATLMFC, V, SDK - > \vc98\lib. Удалить эту запись (и следующий). Если LIB-это пользовательская переменная, тогда вы нужно перезапустить VS или, возможно, выйти из системы и обратно. Если это система переменная, тогда вам придется перезагрузиться. Ваша ошибка должна исчезнуть.
вот решение
http://msdn.microsoft.com/en-us/library/tcbs315h (v=против 80).aspx
его ссылаются на запись LIB в переменных среды
Похоже, вы рассмотрели большинство вещей здесь, поэтому единственное, что я могу придумать, это унаследованные листы свойств.
они указаны в XML vcproj (или вы можете проверить диспетчер свойств в IDE):
<VisualStudioProject>
<Configurations>
<Configuration InheritedPropertySheets="stuff.vsprops">...
Если у вас есть некоторые унаследованные листы свойств, перейдите в файл и посмотрите, есть ли у вас какие-либо пути vc98 lib, установленные явно?
Мне интересно, может ли это быть связано с изменением использования коммутаторов компилятора /MT и /MTd из /ML и /MLd, которое произошло для VS2005, относящегося к библиотекам времени выполнения C?
обратитесь сюда и посмотрите, помогает ли это: http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx
У меня очень похожая проблема с проектами C# в VS.NET2010. Похоже, это влияет только на те проекты, которые импортируют проекты C++/CLI. Проекты еще до компиляции с использованием В9.0 набор инструментов(C++, с++/CLI) и .NET 3.5 С (В C++, НА C#). Вам удалось найти источник проблемы?
Я обошел его, добавив предупреждение 1668 в список игнорируемых предупреждений в свойствах затронутых проектов. Это не идеально, но лучше, чем спам в моих предупреждениях список.