French commits

Chroniques d'un développeur, avec ses anecdotes, ses découvertes, ses moments à en envoyer valser son clavier.

Revenir

[Résolu] .NET 5 : "error MSB4236 The SDK 'Microsoft.NET.Sdk' specified could not be found"

2020/09/28 23:02:00

TL;DR: Si comme moi, vous avez écumé les forums, et que rien n'a fonctionné pour vous, essayez de lancer votre CLI en mode administrateur. Sinon essayez les étapes que j'ai pu trouver (mise à part le mode admin qui a fonctionné pour moi, je ne promets rien).

Aujourd'hui, j'ai eu envie de tester .NET 5, aka la version tout terrain ultime du framework de Microsoft. Je ne me doutais pas ce matin de ce qui m'attendait après cette décision...

Error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found

Après l'installation de .NET 5, et la création d'un projet en CLI, depuis le nouveau et sublime PowerShell, via un simplissime 'dotnet build console' me voilà prêt à coder mon petit projet. Au moment de lancer un 'dotnet build', mes espoirs sont réduits en miettes par le message d'erreur en titre de ce billet. Je suis alors la description du message d'erreur, indiquant que le SDK est manquant. Je supprime l'ancien, télécharge à nouveau le SDK, l'installe, puis redémarre la machine. Le même message revient malgré tout. J'essaie de lancer le debugger de Visual Studio Code, disponible via le package "C#": la console interne m'affiche également l'erreur fatale.

Me voilà devant un premier mur. "Qu'à cela ne tienne", me dis-je, mes camarades virtuels des Internets, locataires de Stackoverflow et consorts, sauront venir éclairer ma lanterne". Après tout, quelqu'un a forcément du essuyer les plâtres de ce nouveau framework (en bêta).

Github issues & Env path

Les premiers articles googlisés m'amènent sur le repo Github de OmniSharp, quio s'avère être un composant internet du package C# pour VS Code. L'issue est toujours ouverte et aucune aide n'est disponible. Je tombe ensuite sur le repo de MsBuild, qui offre une première solution : l'ajout d'une variable d'environnement vers les SDK :

**Key** : 'MSBuildSDKsPath'
**Value** : 'C:\Program Files\dotnet\sdk\[sdk version]\Sdks'.

Cela a visiblement marché pour certaines personnes, mais pas pour moi. Pas grave, je n'ai pas fini d'écumer les résultats Google. Je prend ma souris, mon clavier, et je continue ma descente vers les profondeurs du web.

Build Tools

Je suis ensuite arrivé sur cette page où le développeur indique avoir eu le soucis, mais sous une autre version du framework .NET Core. Je suis prèt à tout, je continue la lecture. Selon lui, le problème se situait au niveau du logiciel 'Build Tools' qui était manquant pour builder son projet sans soucis. J'ai un peu galéré pour trouver un lien clair vers le fameux logiciel, mais je suis parvenu à l'installer.

Je redémarre la machine, et retente un build en ligne de commande: 'Error MSB4236'. Je commance à baisser les bras, aucun autre lien de ma recherche Google ne m'offre d'éclaircissement. Je suis tout seul dans ma grotte, et ma chandelle n'a plus de 2mm de ficelle. Quand soudain, l'espoir renait ! "Et si j'essayai de lancer ce fameux Build Tools ?" me dis-je avec gaité. Ni une, ni deux, j'ouvre Visual Studio Installer, et lance le logiciel de build. Une fenêtre CLI s'ouvre. "Ok, c'est juste l'invit de commande pour développeur de Visual Studio...". Dépité, je tente quand même un build depuis cette fenêtre. Et, oh miracle, e projet build comme il faut ! Je tente un 'dotnet run'... le "Hello world" s'affiche bel et bien !

Regain d'énergie, je me dis quand même que cette fene^tre est dégueulasse. Pas de possibilité de faire un change directory, adieu la belle config du nouveau PowerShell. Je suis à la fois content et emmerdé. J'ai horreur de ne pas pouvoir me servir de mon environnement de dev, et encore plus quand c'est impossible de le personnaliser. Je me dit que le fait de l'avoir ouvert, va peut-être faire fonctionner la même commande sous PowerShell. Je sais, c'est débile, mais l'espoir peut parfois être assez cruel. Ca n'a pas loupé, l'erreur a pointé le bout de son nez. Git bash : idem. Build interne de Visual Code : rien de nouveau à l'horizon.

L'abandon

L'idée de faire du .NET 5 avec PowerShell disparaissait lentement devant moi, résolu que ma machine avait peut-être subi trop de install/uninstall des différentes version de Visual Studio, frameworks .NET, et j'en passe, et que tout ceci avait provoqué un maelstrôm impitoyable et indigeste

Je me rabattais lentement vers un retour à .NET Core 3.1 en attendant la sortie officciel de .NET 5... quand tout à coup...

Le déclic

"Et si je lançais PowerShell et Visual Studio Code en admin ?". Cette idée me paraissait surréaliste, mais aussi tellement logique: cela avait été nécessaire pour Visual Studio 2017 et 2019 donc bon... Qui ne tente rien n'a rien. Fébrile, je tente un coup de poker.

Build successful.