J'ai aussi rencontré ce problème en essayant de créer un plugin à l'aide de Visual Studio 2017 sur mon ordinateur de travail horriblement en désordre. Si vous recherchez sur Internet "impossible de trouver resgen.exe", vous pouvez trouver tous ces conseils du type " utilisez simplement regedit pour modifier votre registre Windows et créez une nouvelle clé ici et copiez-collez le contenu de ce dossier dans cet autre dossier, bla bla bla. '
J'ai passé des semaines à gâcher mon registre Windows avec regedit, j'ai probablement ajouté une douzaine de sous-clés et copié-collé ResGen.exe dans de nombreux répertoires différents, en le mettant parfois dans un dossier `` bin '', parfois en le gardant simplement dans le dossier principal, etc.
En fin de compte, j'ai réalisé: "Hé, si Visual Studio donnait un message d'erreur plus détaillé, rien de tout cela ne poserait problème." Donc, afin d'obtenir plus de détails sur l'erreur, j'ai exécuté MSBuild.exe directement sur mon fichier * .csproj à partir de la ligne de commande:
"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"
Bien sûr, vous devrez modifier les détails du chemin en fonction de votre situation, mais assurez-vous de mettre 1) le chemin complet de MSBuild.exe 2) le chemin complet de votre fichier * .csproj 3) le -fl -flp: logfile = part, qui indiquera à MSBuild de créer un fichier journal de chaque étape du processus, 4) l'emplacement où vous souhaitez que le fichier * .log soit enregistré et 5); verbosity = diagnostic, qui indique simplement à MSBuild pour inclure des tonnes de détails dans le fichier * .log.
Après cela, la génération échouera comme toujours, mais il vous restera un fichier * .log indiquant exactement où MSBuild a recherché votre fichier ResGen.exe. Dans mon cas, près du bas du fichier * .log, j'ai trouvé:
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"
Donc, fondamentalement, MSBuild a cherché dans cinq répertoires distincts pour ResGen.exe, puis a abandonné. C'est le genre de détails que vous ne pouvez tout simplement pas obtenir du message d'erreur Visual Studio, et cela résout le problème: utilisez simplement regedit pour créer une clé pour l'un de ces cinq emplacements et mettez la valeur «InstallationFolder» dans la clé , qui doit pointer vers le dossier dans lequel réside votre ResGen.exe (dans mon cas, c'était "C: \ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools").
Si vous êtes un spécialiste des sciences humaines comme moi sans expérience en informatique, vous serez peut-être tenté de simplement modifier votre registre Windows et de copier-coller ResGen.exe partout lorsque vous êtes confronté à une erreur comme celle-ci (qui est bien sûr, mauvaise pratique). Il est préférable de suivre la procédure décrite ci-dessus: 1) Exécutez MSBuild.exe directement sur votre fichier * .csproj pour trouver l'emplacement exact que MSBuild recherche pour ResGen.exe puis 2) modifiez votre registre Windows avec précision afin que MSBuild puisse trouver ResGen. EXE.