C# 将Visual Studio 2005 sln迁移到2008,在LIB环境变量中使用vc98路径发出警告,如何修复?

C# 将Visual Studio 2005 sln迁移到2008,在LIB环境变量中使用vc98路径发出警告,如何修复?,c#,.net,windows,visual-studio-2008,C#,.net,Windows,Visual Studio 2008,我正在将一个解决方案从VisualStudio2005迁移到VisualStudio2008。当我在2005年构建解决方案时,我没有任何问题。但是,在使用devenv.exe/Upgrade并在解决方案上使用msbuild后,会收到以下警告: CSC:警告CS1668:在“lib环境变量”中指定的搜索路径“\vc98\lib”无效--“系统找不到指定的路径。” CSC:警告CS1668:在“lib环境变量”中指定的搜索路径“\vc98\mfc\lib”无效--“系统找不到指定的路径。” CSC:

我正在将一个解决方案从VisualStudio2005迁移到VisualStudio2008。当我在2005年构建解决方案时,我没有任何问题。但是,在使用devenv.exe/Upgrade并在解决方案上使用msbuild后,会收到以下警告:

CSC:警告CS1668:在“lib环境变量”中指定的搜索路径“\vc98\lib”无效--“系统找不到指定的路径。” CSC:警告CS1668:在“lib环境变量”中指定的搜索路径“\vc98\mfc\lib”无效--“系统找不到指定的路径。” CSC:警告CS1668:在“lib环境变量”中指定的搜索路径“c:\program files\microsoft visual studio 9.0\vc\platformsdk\lib”无效--“系统找不到指定的路径。”

我已经检查过了,但它没有提供任何帮助,因为我的LIB和INCLUDE环境变量既没有在用户变量中设置,也没有在系统变量中设置。我查看了Studio的工具>选项>项目和解决方案>VC++目录,没有任何内容引用旧的内容:

库文件: $(VCInstallDir)库 $(VCInstallDir)atlmfc\lib $(VCInstallDir)atlmfc\lib\i386 $(WindowsSdkDir)\lib $(FrameworkSDKDir)库 $(VSInstallDir) $(VSInstallDir)库

包括文件:

$(VCInstallDir)包括 $(VCInstallDir)atlmfc\include $(WindowsSdkDir)包括 $(FrameworkDKDir)包括

我使用了诊断输出,以便在调用LIB变量时能够准确地看到它包含的内容:

lib=c:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\lib;c:\ProgramFiles\Microsoft Visual Studio 9.0\VC\LIB;C:\Program Files\Microsoft SDK\Windows\v6.0A\lib\vc98\lib\vc98\mfc\lib;c:\ProgramFiles\microsoft visual studio 9.0\vc\platformsdk\lib;c:\ProgramFiles\microsoft visual studio 9.0\vc\lib;c:\program files\microsoft visual studio 9.0\vc\atlmfc\lib; LIBPATH=c:\Windows\Microsoft.NET\Framework\v3.5;c:\Windows\Microsoft.NET\Framework\v2.0.50727;c:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;c:\Program Files\Microsoft Visual Studio 9.0\VC\LIB


因此,如果vc98不在我的环境变量中,或者我的studio设置中,而且vc98甚至没有安装(或者redist),那么该路径从何而来?是什么过程将LIB env var设置成这样的?

这里似乎涵盖了大部分内容,所以我唯一能想到的是继承的属性表

它们在vcprojxml中指定(或者您可以在IDE中检查属性管理器):


...

如果您确实有一些继承的属性表,请查看该文件,看看是否显式设置了任何vc98库路径?

我想知道这是否是由于VS2005中与C运行时库相关的/ML和/MLd的/MT和/MTd编译器开关的使用发生了更改

请参阅此处,看看是否有帮助:

可在以下位置找到:

是的,这是一个已知的问题 对一些人来说。仔细查看 您的LIB路径。就在ATLMFC,V之后, SDK->\vc98\lib。删除此条目 (和下面的一个)。如果 LIB是一个用户变量,然后 需要重新启动VS或可能注销 然后再回来。如果它是一个系统 变量,则必须重新启动。 然后你的错误就会消失


在VS.NET2010中,我对C#项目有一个非常类似的问题。它似乎只影响那些导入C++/CLI项目的项目。这些项目仍然设置为使用v9.0工具集(C++,C++/CLI)和.NET 3.5(C++/CLI,C#)进行编译。你找到问题的根源了吗

我通过在受影响项目属性中的忽略警告列表中添加警告1668来解决这个问题。这并不理想,但比我警告列表中的垃圾邮件要好。

以下是解决方案


它是指环境变量处的LIB条目

Nope。在任何正在迁移的VCProj文件中,我没有一个InheritedPropertySheets属性。很抱歉听到这个消息。那是我最好的猜测,不需要道歉。我希望微软能知道发生了什么事。我祈求好运。我很想知道问题出在哪里。我还没有机会检查这个。希望我能在今天或明天完成。这基本上就是@compie所说的…:/
<VisualStudioProject>
    <Configurations>
        <Configuration InheritedPropertySheets="stuff.vsprops">...