web-dev-qa-db-fra.com

Visual Studio - Caractères illégaux dans le chemin

Cela se produit après la dernière mise à jour de Visual Studio Community 2017. Chaque fois que j'essaye d'ouvrir mon projet, je reçois l'avertissement suivant:

Avertissement IDE0006 Une erreur s'est produite lors du chargement du projet. Certaines fonctionnalités du projet, telles que l'analyse complète de la solution pour le projet en échec et les projets qui en dépendent, ont été désactivées. Core.Tests

Ensuite, quand je lance la construction, je reçois:

Erreur La tâche "ResolvePackageFileConflicts" a échoué de manière inattendue. System.ArgumentException: caractères illégaux dans le chemin.
à System.IO.Path.CheckInvalidPathChars (chemin de la chaîne, vérification booléenne supplémentaire)
at System.IO.Path.GetFileName (chemin de la chaîne)
sur Microsoft.NET.Build.Tasks.ItemUtilities.GetTargetPath (élément ITaskItem)
sur Microsoft.NET.Build.Tasks.ItemUtilities.GetReferenceTargetPath (élément ITaskItem)
sur Microsoft.NET.Build.Tasks.ConflictResolution.ResolvePackageFileConflicts. <> c. <ExecuteCore> b__35_1 (ConflictItem ci)
à l'adresse Microsoft.NET.Build.Tasks.ConflictResolution.ConflictResolver`1.ResolveConflicts (IEnumerable`1 conflictItems, Func`2 getItemKey, Action`1 trouvéConflict, Consommateur booléen, Commitateur booléen, ActionWall non boiteuse,
à Microsoft.NET.Build.Tasks.ConflictResolution.ResolvePackageFileConflicts.ExecuteCore ()
à Microsoft.NET.Build.Tasks.TaskBase.Execute ()
à l'adresse Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute ()
sur Microsoft.Build.BackEnd.TaskBuilder. <ExecuteInstantiatedTask> d__26.MoveNext () Core.Tests

et après 

Erreur CS0006 Le fichier de métadonnées 'C:\tmp\backend\Tests\DataLoader.Tests\bin\Debug\DataLoader.Tests.dll' est introuvable EResourceConnector.Tests C:\tmp\backend\Tests\EResourceConnector.Tests\CSC 1 actif

Le chemin d'accès au projet est en caractères latins seulement. Sur le serveur de génération, la construction fonctionne, mais pas sur mon ordinateur après la dernière mise à jour de VS. J'ai essayé de réinstaller VS mais cela n'a pas aidé.

Y a-t-il des solutions ou du moins un indice pour résoudre ce problème?

EDIT: J'ai essayé d'exclure les fichiers affectés par ce problème et cela a fonctionné. Mais ce n'est pas la solution à mon problème. Il est intéressant de noter que seuls les fichiers concernés sont des tests unitaires.

EDIT2: J'ai essayé de construire une solution complète sur le nouveau Windows 10 avec le dernier Visual Studio 2017 et c'est un échec. C'est donc évidemment le problème de ma solution, mais uniquement dans la nouvelle version de VS. J'ai essayé ma solution sur Visual Studio 2015 et la construction a bien fonctionné.

Quoi qu'il en soit, voici par exemple le fichier Core.Test.csproj qui est l’un de ceux-ci qui cause ce problème. https://Pastebin.com/kq7MFLV1

 ScreenShot of the errors from this project.

6
Lukas

Dans votre cas, le problème est que la ligne retourne dans la référence suivante:

<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <HintPath>
      ..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
      </HintPath>
</Reference>

Changer ceci en:

 <Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <HintPath>..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
 </Reference>
7
MrEdmundo

J'ai eu un problème similaire, mais dans mon cas, il s'agissait de caractères étranges dans une référence: 

<Reference Include="Office, Version=11.0.0.0, &#xD;&#xA;        Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<Reference Include="stdole, Version=7.0.3300.0, &#xD;&#xA;        Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

Changer ce qui précède pour:

<Reference Include="Office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

Résolu ce problème particulier. 

Astuce: j'ai résolu ce problème par essais et erreurs. J'ai commenté tous les ItemGroups du fichier csproj et les ai réintroduits un par un. Bien que la génération de votre projet puisse échouer au cours de ce processus, il est clair que l'erreur ci-dessus se produit car vous verrez uniquement cette erreur et non d'autres erreurs de génération en raison d'éléments ItemGroups manquants. 

5
MrEdmundo

@Delfi - J'ai mis à jour VS 2017 le vendredi 2017-08-18 et je commence à obtenir la même erreur de construction "ResolvePackageFileConflicts" aujourd'hui sur certains projets. J'ai remarqué que le problème se produisait lorsqu'une référence dans le fichier .csproj avait un Hintpath. Après avoir utilisé le Bloc-notes pour supprimer le Hintpath des références affectées, les versions fonctionnent bien maintenant.

Cela semble être un problème avec la dernière mise à jour de VS 2017. Visual C # 2017 00369-60000-00001-AA019 Microsoft Visual C # 2017

Exemple:

<Reference Include="Atalasoft.dotImage.WinControls, Version=10.0.6.53316, Culture=neutral, PublicKeyToken=2b02b46f7326f73b, processorArchitecture=x86">
 <HintPath>..\..\..\..\..\Program Files\Atalasoft\DotImage 10.0\bin\4.0\Atalasoft.dotImage.WinControls.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
</Reference>

Changé en...

*<Reference Include="Atalasoft.dotImage.WinControls, Version=10.5.0.61849, Culture=neutral, PublicKeyToken=2b02b46f7326f73b, processorArchitecture=x86">
  <SpecificVersion>False</SpecificVersion>
</Reference>*

J'espère que cela vous aide avec votre problème.

Remarque: je ne l'ai pas essayé, mais cela pourrait probablement aussi être corrigé en supprimant et en rajoutant les références affectées dans le projet via l'explorateur de solutions. 

2
G.Andador

Je faisais également face au même problème avec cette ligne

  <HintPath>&gt;$(SolutionDir).lib\Foo.Bar.dll</HintPath>

Supprimer &gt; a fonctionné pour moi.

  <HintPath>$(SolutionDir).lib\Foo.Bar.dll</HintPath>
0
Nikhil Agrawal