Pregunta

Estoy tratando de crear un nuevo proyecto C ++ en VS 10, y ni siquiera puedo obtener un proyecto vacío para cargar desde la plantilla.Recibo un error ...

La función "existe" solo acepta un valor escalar, pero su argumento "$ (userrootdir) \ microsoft.cpp. $ (plataforma) .user.props" evalúa a "{~}" que no es un valor escalar.

El valor {~} es lo que he almacenado en la variable localappdata en las variables de entorno de la computadora, concatenada con "\ Microsoft \ Msbuild \ v4.0 \ Microsoft.cpp.win32.user.props" al final.

Me muestro reacio a cambiar cualquier archivo de plantilla sin entender lo que está pasando.

¿Fue útil?

Solución 2

Los enlaces proporcionados por @mihai dieron la información que necesitaba para encontrar una solución.El problema era que LOCALAppdata no tenía el valor que buscaba (justo lo que dice el mensaje de error).No pude cambiar los datos porque otras aplicaciones lo habían modificado para sus propios propósitos (el valor no era "~", que era un marcador de posición para este post).

En su lugar, abrí el archivo .vcxproj en el bloc de notas, y modificé los nodos de grupo de grupo que causan el error.En lugar del atributo:

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

... ahora dice

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

El proyecto ahora se carga.

Otros consejos

Bueno, parece que Windows XP no proporciona ningún valor predeterminado para esta variable y "~" definitivamente no es un directorio válido en su PC.Intente configurarlo como se describe aquí ,Y tal vez tendrás suerte.Vs2010 tenía Algún error relacionado con esto.Tal vez también necesite actualizarlo a SP1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top