Yo también encontré este problema al intentar crear un complemento con Visual Studio 2017 en mi computadora de trabajo horriblemente desordenada. Si busca en Internet "no se puede encontrar resgen.exe", puede encontrar todos estos consejos que son como ' simplemente use regedit para editar su Registro de Windows y haga una nueva clave aquí y copie y pegue el contenido de esta carpeta en esta otra carpeta, bla, bla, bla. '
Pasé semanas simplemente estropeando mi Registro de Windows con regedit, probablemente agregué una docena de subclaves y ResGen.exe pegado con copia en muchos directorios diferentes, a veces colocándolo en una carpeta 'bin', a veces simplemente manteniéndolo en la carpeta principal, etc.
Al final, me di cuenta: "Oye, si Visual Studio daba un mensaje de error más detallado, nada de esto sería un problema". Entonces, para obtener más detalles sobre el error, ejecuté MSBuild.exe directamente en mi archivo * .csproj desde la línea de comandos:
"C:/Windows/Microsoft.NET/Framework/v4.0.3.0319/MSBuild.exe C:/Users/Todd/Plugin.csproj -fl -flp:logfile="C:/Users/Todd/Desktop/error_log.log";verbosity=diagnostic"
Por supuesto, tendrá que cambiar los detalles de la ruta para adaptarse a su situación, pero asegúrese de poner 1) la ruta completa a MSBuild.exe 2) la ruta completa a su archivo * .csproj 3) el -fl -flp: archivo de registro = parte, que le indicará a MSBuild que cree un archivo de registro de cada paso que tomó en el proceso, 4) la ubicación en la que desea que se guarde el archivo * .log y 5); verbosidad = diagnóstico, que básicamente solo le dice a MSBuild para incluir toneladas de detalles en el archivo * .log.
Después de hacer esto, la compilación fallará como siempre, pero se quedará con un archivo * .log que muestra exactamente dónde MSBuild buscó su archivo ResGen.exe. En mi caso, cerca del final del archivo * .log, encontré:
Compiling plug-in resources (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.1a\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.0a\WinSDK-NetFx40Tools-x86 (Task ID:41)
MSBUILD: error : Failed to locate ResGen.exe and unable to compile plug-in resource file "C:/Users/Todd/PluginResources.resx"
Básicamente, MSBuild buscó en cinco directorios separados ResGen.exe y luego se dio por vencido. Este es el tipo de detalle que simplemente no puede obtener del mensaje de error de Visual Studio, y resuelve el problema: simplemente use regedit para crear una clave para cualquiera de esas cinco ubicaciones y coloque el valor "InstallationFolder" en la clave , que debería apuntar a la carpeta en la que reside su ResGen.exe (en mi caso fue "C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools").
Si usted es un experto en humanidades como yo sin experiencia en computadoras, puede tener la tentación de editar el registro de Windows y copiar y pegar ResGen.exe en todo el lugar cuando se encuentre con un error como este (que es por supuesto, mala práctica). Es mejor seguir el procedimiento descrito anteriormente: 1) Ejecute MSBuild.exe directamente en su archivo * .csproj para averiguar la ubicación exacta que MSBuild está buscando ResGen.exe y luego 2) edite su Registro de Windows precisamente para que MSBuild pueda encontrar ResGen. exe.