Миграция 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 в список игнорируемых предупреждений в свойствах затронутых проектов. Это не идеально, но лучше, чем спам в моих предупреждениях список.