11 agosto 2020

VMWare, Windows 10, caracteres no-ASCII y la madre que lo parió

 En mi trabajo es muy normal usar máquinas virtuales. Antes utilizaba principalmente VirtualBox, pero ahora nos ha llegado una orden desde la dirección de la compañía de que solo podemos utilizar VMWare. Supongo que estos cambios se deben básicamente a las cuentas que hayan hecho pagando licencias...

Así que me puse a instalar VMWare en mi PC de trabajo, un flamante e impresionante DELL precission con 32 Gb de memoria y micro Xeon con 4 cores a 3 Ghz. Vamos, que no está nada mal.

El sistema operativo es Windows 10 actualizado (ya me cago en algún pariente de Bill Gates cuando me sale algún inesperado reinicio por actualizaciones o tarda demasiado en iniciarse o pararse por las actualizaciones).

Descubrí que no hay manera de instalar la versión 15.5.6 (la última de VMWare). Da igual como se intente, sale momentáneamente el logo de VMWare y finaliza, sin realizar la instalación ni explicaciones de que ha pasado.

Como eso ya era mosqueante fui probando versiones anteriores, hasta que llegué a la versión 15.5.2, esta sí que pude instalarla sin problemas.

Contento con haber perdido solo media mañana, decidí intentar actualizar la instalación usando la opción de "buscar actualizaciones" del propio VMWare. Tras un rato descargando e intentando actualizar sale un pop-up que finaliza la actualización con error:

Install of VMWare Workstation Pro failed. Contact VMWare support or your system administrator

Así, sin más, ni códigos de error, ni explicaciones... Mire en los ficheros de log que deja el VMWare y ni rastro de posibles errores o explicaciones...

Bueno, no había perdido toda la mañana, así que decido trabajar con esa versión y crearme una máquina virtual. Cuando voy a arrancarla aparece otro error diferente:

Could not get vmci driver version. Try reinstall VMWare Workstation

Como soy muy obediente hice lo que me decia el mensaje de error, reinstalé otra vez el VMWare (la versión que me funcionaba) y llegué a los mismos errores.

Así que perdida casi toda la mañana decidí acudir a los foros de VMWare, incluso me registré y estuve buscando, pero ninguna de las soluciones propuestas me ayudó (salvo un "atajo" que encontré para solucionar el problema con el vmci, mira este enlace)

Al final perdí todo el día, probando soluciones que encontré en diversos foros, o ideas locas de algún administrador de sistemas, pero nada, no hay manera de instalar la última versión de VMWare.

Hoy he vuelto a perder toda la mañana con el problema (y probando más ideas de otro administrador de sistemas), hasta que me fijé en los ficheros de log que deja en el directorio temporal (%TEMP%) durante la instalación, en él se puede ver algo como lo siguiente:

2020-08-11T15:22:32.796+02:00| BootStrapper-build-16341506| I2: Util_IsDirectory: Not a directory: C:\Users\MeyerMañoso\AppData\Local\Temp\

¿Como era posible que ese directorio no exista? Si es el directorio temporal por defecto para el usuario MeyerMañoso, y sí que existe...

Y de repente vino la inspiración... seguro que en algún sitio tienen una función (posiblemente relacionada en la creación de ficheros temporales) que están usando métodos muy viejos (los 80's atacan de nuevo) y da errores al acceder a un directorio que tenga un carácter no ASCII en el nombre (como es el caso de la tan española "ñ").

Así que cambié en el sistema las variables de entorno TEMP y TMP para que apuntaran a directorios con nombres 100% ASCII (dejé las dos variables apuntando a C:\temp) y volví a intentarlo.

¡Y funcionó!, despues de dia y medio perdido, he conseguido hacer una instalación con la última versión del VMWare, y las máquinas virtuales que he creado ya no dan el error del vmci.

Como conclusión, a partir de la versión 15.5.3 decidieron usar funciones que seguramente alguien desarrollaría en los años 80 que no soportan los caracteres no ASCII.

Así que lo siguiente ha sido abrir mi blog para contar mi historia, por si ayuda a alguien en una situación similar. (he intentado actualizar las entradas en los forum de VMWare, pero llevan todo el dia sin funcionar....).

03 abril 2020

Visual Studio 2008: "Could not locate the .NET Framework SDK"

Hace mucho que no escribia aqui, pero esto tenia que ponerlo en algun lado, puede que a alguien le sea util...

Por motivos de trabajo suelo pelearme con varias versiones de Visual Studio y .NET, no es agradable, pero es así.

Así que tengo una Maquina Virtual WIndows 10 (64 bits) con Visual Studio 2008, para compilar un viejo projecto de mi empresa, y me encontré el siguiente error de compilación:

Error     106       Cryptographic failure while signing assembly 'C:\xxxxx\Debug\xxxxx.dll' -- 'Access is denied. ' 

------ Rebuild All started: Project: xxxxx, Configuration: Debug Any CPU ------
Could not locate the .NET Framework SDK.  The task is looking for the path to the .NET Framework SDK at the location specified in the SDKInstallRootv2.0 value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework.  You may be able to solve the problem by doing one of the following:  1.) Install the .NET Framework SDK.  2.) Manually set the above registry key to the correct location.

Me dediqué a instalar varias versiones de .NET (entre ellas la 2.0 y la 3.0), pero nada, el mismo error...

Así que me dediqué a buscar por foros, y fui encontrando información, aquí y allá, juntando todo eso, y probando bastante llegué a la formula para conseguir compilar mi proyecto, ahí os paso la formula:

  • Cerrar las instancias que tengais abiertas de Visual Studio
  • Crear una entrada de tipo string en el registro de windows, dentro de "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework", con nombre "SDKInstallRootv2.0" y valor "C:\Program Files\Microsoft SDKs\Windows\v6.0A" ( o el directorio que tengais en vuestra maquina para el SDK de windows)
  • Con el explorador de windows ir al directorio "C:\ProgramData\Microsoft\Crypto\RSA", seleccionar la carpeta "MachineKeys", botón derecho del ratón, pestaña "Security" y dar todos los permisos (yo como estaba algo quemado di todos los permisos a "Everyone")

Así conseguí solucionar un problema que me ha estado fastidiando durante varios dias....

Espero que a alguien más le sirva de ayuda.