Après la mise à niveau vers Visual Studio 2017 15.5, aucun de mes projets ne se chargera correctement. Tous sont marqués comme indisponibles.
J'obtiens l'erreur suivante pour chaque projet:
erreur: syntaxe d'invocation de méthode statique non valide: "[MSBuild] :: IsRunningFromVisualStudio ()". La méthode "[MSBuild] :: IsRunningFromVisualStudio" est introuvable. L'invocation de méthode statique doit être de la forme: $ ([FullTypeName] :: Method ()), par ex. $ ([System.IO.Path] :: Combine (
a
,b
)). C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets
Le projet de rechargement génère cette erreur Invite:
L'ajout de nouveaux projets génère cette erreur
1. Fermez toutes les instances en cours d'exécution de Visual Studio 2017
2. Lancer (en tant qu'administrateur) "Prompt Command Command for VS 2017"
. Tapez les commandes suivantes (remplacez Professional par votre édition, Enterprise ou Community, ou ajustez le chemin d'accès en conséquence):
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Engine.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Conversion.Core.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll"
4. Redémarrez Visual Studio 2017
Il semble d'après les réponses à ce problème sur github qu'il est souvent causé par le fait d'avoir une ancienne version de MSBuild dans le GAC. Celui-ci sera ensuite utilisé de préférence à la version fournie avec la version mise à jour de VS.
La solution consiste à supprimer l'ancienne version de Microsoft.Build du gac.
Trouvez les versions gac'd:
gacutil /l | findstr Microsoft.Build
Recherchez l'une des versions 15.x.x.x, puis supprimez-les:
gacutil /u "Microsoft.Build, Version=15.{version_found}"
Redémarrez Visual Studio
Il peut également être nécessaire de supprimer les assemblys associés Microsoft.Build.Utilities.Core
, Microsoft.Build.Framework
et Microsoft.Build.Tasks.Core
de cette version.
Après avoir installé la dernière version de Visual Studio via le programme de mise à jour, j'ai reçu les mêmes messages d'erreur.
Le problème a été résolu, au moins dans mon cas, en redémarrant après l'installation de la mise à jour de Visual Studio.
J'ai eu ce problème avec Visual Studio 2017 sur un PC Windows 7 sur un réseau d'entreprise. J'ai essayé de résoudre le problème de la manière suivante:
J'ai remarqué que sur l'ordinateur d'un collègue, sur lequel VS2017 n'avait jamais été installé, lorsque j'ai installé VS2017 Community Edition version 15.5, il n'y avait aucun problème.
À ce stade, je dois admettre la défaite. La seule solution simple est de remplacer la ligne dans le fichier:
Il y a une ligne vers la fin du fichier:
<NuGetRestoreTargets Condition="'$(NuGetRestoreTargets)'=='' and '$([MSBuild]::IsRunningFromVisualStudio())'=='true'">$(MSBuildToolsPath32)\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets</NuGetRestoreTargets>
remplacez simplement la $([MSBuild]::IsRunningFromVisualStudio())
par true
:
<NuGetRestoreTargets Condition="'$(NuGetRestoreTargets)'=='' and 'true'=='true'">$(MSBuildToolsPath32)\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets</NuGetRestoreTargets>
cependant cela ne permet que le chargement des projets - vous ne pouvez pas l'utiliser pour construire le projet.
Je vais demander que ma machine soit réimagée afin que je puisse simplement télécharger et installer Visual Studio à partir de zéro.
(J'espère que Microsoft trouvera bientôt un correctif.)