0

我正在尝试在 VS 10 中创建一个新的 C++ 项目,甚至无法从模板中加载一个空项目。我收到一个错误...

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

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

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

4

2 回答 2

0

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

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

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

...它现在读取

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

项目现在加载。

于 2012-07-31T18:35:34.183 回答
0

好吧,看起来 Windows XP 没有为这个变量提供任何默认值,而且“~”在你的 PC 上绝对不是一个有效的目录。尝试按照此处所述进行设置,也许您会很幸运。VS2010 有一些与此相关的错误。也许您还需要将其升级到 SP1。

于 2012-07-27T21:36:11.500 回答