Hola, chicos,
¡Buenas tardes!

En esta publicación, compartiré con ustedes un problema que tuve mientras desarrollaba algunas rutinas CLR en C# en un nuevo entorno que creé usando VMware, Windows 7 x64 y Visual Studio 2015 Community Edition.

el problema

El problema ocurre cuando intento construir o publicar mi ensamblado en la base de datos. Este tipo de problema no es exclusivo de CLR sino de Visual Studio + .NET Framework y afecta también a los desarrolladores de C#.

El mensaje de error que aparece es este:

Microsof Visual Studio 2015 - SdkToolsPath Build Error
Microsof Visual Studio 2015: error de compilación de SdkToolsPath

La tarea no pudo encontrar “sgen.exe” usando SdkToolsPath “” o la clave de registro “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86”. Asegúrese de que SdkToolsPath esté configurado y que la herramienta exista en la ubicación específica del procesador correcta en SdkToolsPath y que el SDK de Microsoft Windows esté instalado

Está bastante claro que lo que sucede es que Visual Studio no puede encontrar el ejecutable sgen.exe. Entendamos por qué.

La solución – Resolviendo el problema

Haciendo una búsqueda rápida en Google, identifiqué algunas “soluciones” señaladas por los usuarios:

  • Instalar Visual Studio 2010: Creo que retroceder en el tiempo y usar Visual Studio 2010 no es bueno... Principalmente porque en VS 2010 ni siquiera puedo publicar el CLR en una base de datos de SQL Server 2014.
  • Instale el SDK de Windows: Incluso podría ser una posible solución, pero el SDK no está disponible para todas las plataformas, como Windows Server 2012, por ejemplo, por lo que no sería una solución definitiva.
  • Deshabilitar la generación de ensamblajes de serialización: Probé esta solución y realmente funciona. El error ya no ocurre.

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix - Disable Serialization Assembly
    Microsof Visual Studio 2015 - Solución de error de SdkToolsPath - Deshabilitar el ensamblaje de serialización


    Sin embargo, como uso WebServices y serialización XML, no es una opción para mí, ya que si no genero el serializador mi proyecto presentará errores de ejecución.

Bueno, como ninguna de ellas me pareció una solución sólida, busquemos una nueva alternativa. Analizando algunas respuestas y publicaciones más, pude identificar esta forma de resolver definitivamente el problema:

  1. Abra RegEdit en su computadora
  2. Acceda a esta clave de registro: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 1
    Microsof Visual Studio 2015 - Solución de error 1 de SdkToolsPath

  3. Tenga en cuenta que la clave SDK40HerramientasRuta apunta a otra clave de registro, que es donde realmente se encuentran los archivos. Si está utilizando .NET Framework 2.0 o 3.5 en su proyecto, debe mirar la clave SDK35ToolsPath
  4. Abra esta clave de registro y vea el directorio de los archivos SDK

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 2
    Microsof Visual Studio 2015 - Solución de error 2 de SdkToolsPath

  5. Ahora abra el directorio bajo la tecla "Carpeta de instalación" en el Explorador de Windows. Como era de esperar, el ejecutable sgen.exe no está en ese directorio.

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 3
    Microsof Visual Studio 2015 - Solución de error 3 de SdkToolsPath

  6. Vaya a la carpeta de otro SDK que tenga este archivo, copie el ejecutable y péguelo nuevamente en esta carpeta. Creo que como el ejecutable es independiente (no tiene dependencias), puede ser cualquier versión. Sugiero obtener siempre la versión más reciente, respetando la versión macro de la plataforma.

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 4
    Microsof Visual Studio 2015 - Solución de error 4 de SdkToolsPath

  7. Después de copiar el archivo, ahora normalmente puede compilar su proyecto en Visual Studio.

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 5
    Microsof Visual Studio 2015 - Solución de error 5 de SdkToolsPath

    Microsof Visual Studio 2015 - SdkToolsPath Error Fix 6
    Microsof Visual Studio 2015 - Solución de error 6 de SdkToolsPath

Gracias por visitarnos y nos vemos en el próximo post.