Visual Studio C++;项目错误re:LOCALAPPDATA 我试图在VS 10中创建一个新的C++项目,甚至无法从模板中加载一个空项目。我得到一个错误

Visual Studio C++;项目错误re:LOCALAPPDATA 我试图在VS 10中创建一个新的C++项目,甚至无法从模板中加载一个空项目。我得到一个错误,c++,visual-studio-templates,C++,Visual Studio Templates,“exists”函数只接受标量值,但其参数“$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props”的计算结果为“{}”,而不是标量值 {~}值是我存储在计算机环境变量中LOCALAPPDATA变量中的值,最后与“\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props”连接在一起 我不愿意在不了解情况的情况下更改任何模板文件。嗯,Windows XP似乎没有为此变量提供任何默认值,“~”绝对不是

“exists”函数只接受标量值,但其参数“$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props”的计算结果为“{}”,而不是标量值

{~}值是我存储在计算机环境变量中LOCALAPPDATA变量中的值,最后与“\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props”连接在一起


我不愿意在不了解情况的情况下更改任何模板文件。

嗯,Windows XP似乎没有为此变量提供任何默认值,“~”绝对不是您电脑上的有效目录。请尝试设置它,也许您会很幸运。VS2010与此相关。也许您还需要将其升级到SP1。

由@Mihai提供的链接提供了我找到解决方案所需的信息。问题是LocalAppData没有它要查找的值(正如错误消息所示)。我无法更改该数据,因为其他应用程序出于自己的目的对其进行了修改(该值不是“~”,这是本文的占位符)

相反,我在记事本中打开了.vcxproj文件,并修改了导致错误的ImportGroup节点。而不是属性:

Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
。。。现在是

Condition="exists('$(UserProfile)\Local Settings\Application Data\Microsoft.Cpp.$(Platform).user.props')"

项目现在加载。

您是否在Windows 7中观察到这种行为?我现在正在查看我的环境变量列表,LOCALAPPDATA没有明确定义。它似乎默认为C:\Users\user\u name\AppData\Local。也许你安装的某个奇怪的应用程序出于某种原因决定重新定义它。。。作为测试,请尝试在控制台中键入dir%LOCALAPPDATA%,并让我知道输出内容。Windows XP。其中有一些文件路径可供其他应用程序使用,但我已尝试更改内容以获得不同的结果。不过,我还没有尝试过空字符串。