A partir d’aujourd’hui, un projet WPF appartenant à une solution de 20 projets définit toutes mes références sur manquant.
Je viens de vérifier la suggestion de MS et les autres réponses sur Stackoverflow mais aucune n'a fonctionné ... J'ai essayé de récupérer la solution de SVN, sans succès, d'autres collègues n'ont pas ce problème .. Nous avons également essayé de supprimer et de rajouter les références (System.Xml par exemple). Mais aucun moyen de le faire fonctionner ...
Toute suggestion? Merci
Voici le csproj
<ItemGroup>
<Reference Include="Catel.Core, Version=4.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.Core.4.2.0\lib\net40\Catel.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Catel.Extensions.Controls, Version=4.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.Extensions.Controls.4.2.0\lib\net40\Catel.Extensions.Controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Catel.Extensions.FluentValidation, Version=4.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.Extensions.FluentValidation.4.2.0\lib\net40\Catel.Extensions.FluentValidation.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Catel.Fody.Attributes, Version=2.8.0.0, Culture=neutral, PublicKeyToken=1c8163524cbe02e6, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.Fody.2.8.0\lib\portable-net4+sl4+wp7+win8+wpa81+MonoAndroid14+MonoTouch40\Catel.Fody.Attributes.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Catel.MVVM, Version=4.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.MVVM.4.2.0\lib\net40\Catel.MVVM.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MethodTimer, Version=1.15.7.0, Culture=neutral, PublicKeyToken=cb1364609f40a1dc, processorArchitecture=MSIL">
<HintPath>..\packages\MethodTimer.Fody.1.15.7.0\Lib\portable-net4+sl5+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\MethodTimer.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="ServiceStack">
<HintPath>..\packages\ServiceStack.4.0.46\lib\net40\ServiceStack.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ServiceStack.Client, Version=4.0.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ServiceStack.Client.4.0.46\lib\net40\ServiceStack.Client.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ServiceStack.Common">
<HintPath>..\packages\ServiceStack.Common.4.0.46\lib\net40\ServiceStack.Common.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ServiceStack.Interfaces, Version=4.0.0.0, Culture=neutral, PublicKeyToken=e06fbc6124f57c43, processorArchitecture=MSIL">
<HintPath>..\packages\ServiceStack.Interfaces.4.0.46\lib\portable-wp80+sl5+net40+win8+monotouch+monoandroid+xamarin.ios10\ServiceStack.Interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ServiceStack.Text, Version=4.0.46.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ServiceStack.Text.4.0.46\lib\net40\ServiceStack.Text.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\net40\System.IO.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Net" />
<Reference Include="System.Runtime, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\net40\System.Runtime.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Threading.Tasks, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\net40\System.Threading.Tasks.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Catel.MVVM.4.2.0\lib\net40\System.Windows.Interactivity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Telerik.Windows.Controls, Version=2015.2.728.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
<HintPath>..\packages\Telerik.Windows.Controls.for.Wpf.40.Xaml.2015.2.728\lib\net40\Telerik.Windows.Controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Telerik.Windows.Controls.GridView, Version=2015.2.728.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
<HintPath>..\packages\Telerik.Windows.Controls.GridView.for.Wpf.40.Xaml.2015.2.728\lib\net40\Telerik.Windows.Controls.GridView.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Telerik.Windows.Controls.Input, Version=2015.2.728.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
<HintPath>..\packages\Telerik.Windows.Controls.Input.for.Wpf.40.Xaml.2015.2.728\lib\net40\Telerik.Windows.Controls.Input.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Telerik.Windows.Controls.Navigation, Version=2015.2.728.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
<HintPath>..\packages\Telerik.Windows.Controls.Navigation.for.Wpf.40.Xaml.2015.2.728\lib\net40\Telerik.Windows.Controls.Navigation.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Telerik.Windows.Data, Version=2015.2.728.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
<HintPath>..\packages\Telerik.Windows.Data.for.Wpf.40.Xaml.2015.2.728\lib\net40\Telerik.Windows.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UIAutomationProvider" />
<Reference Include="UIAutomationTypes" />
<Reference Include="WindowsBase" />
Oui, j'utilise Nuget, les 19 autres points correspondent aux mêmes assemblages ... rien n'a été déplacé
Depuis que je n'ai pas pu continuer, j'ai copié le projet d'un collègue et maintenant ça marche ... pense que quelque chose s'est mal passé dans le système de fichiers ... j'ai comparé la solution et elles étaient identiques
La solution à ce problème est.
Chaque fois que vous importez un projet dans VS 2015, votre .csproj est modifié. Donc, afin de le réparer. Faites un clic droit sur .csproj et ouvrez-le dans le bloc-notes ou n'importe quel éditeur et supprimez
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
Ensuite, construisez votre solution et cela devrait fonctionner.
Dans le répertoire racine de la solution, supprimez tout ce qui se trouve dans le dossier /packages/
, puis effectuez une reconstruction.
J'ai eu cette fois, causée par une importation .targets cassée. Vérifiez si vous avez activé par erreur la restauration du package de nuget (qui inclut un fichier .targets), puis supprimé le répertoire .nuget.
Cela peut aider de forcer la reconstruction des paquets de nuget. Accédez à la console du nuget et utilisez les commandes suivantes: (OUTILS> Options> Gestionnaire de packages> Gestionnaire de packages).
Update-Package -reinstall -ProjectName "MyProject" -safe
Le paramètre safe ne mettra pas à jour les paquets, mais les réinstallera seulement. Si cela ne vous a pas aidé, vous pouvez essayer de les mettre à jour (mais assurez-vous d'avoir une copie du projet quelque part, au cas où.)
Update-Package -reinstall -ProjectName "MyProject"
Pour forcer la mise à jour d'un seul paquet, utilisez:
Update-Package -id Microsoft.Package.Name -ProjectName "MyProject"
J'ai eu le même problème. La solution qui a fonctionné pour moi a été d’afficher le gestionnaire de paquets Nuget pour la solution et d’actualiser les paquets.
Un autre cas impliquant des packages manquants et le gestionnaire de packages nuget de la solution montrait des mises à jour et des dépendances à installer, ce qui était le correctif.
Un autre cas était exactement comme indiqué ci-dessus - le dossier de suppression de paquets l'a corrigé.
La modification manuelle du projet est une option, mais votre projet risque de ne pas s'ouvrir si vous piquez là où vous n'êtes pas censé le faire. Si vous le pouvez, évitez de le faire, c'est mon opinion.
J'ai également fait l'expérience de cela dans VS2015 avec une solution comportant environ 10 projets. Un seul projet - le projet principal MVC - a été affecté et toutes les références, y compris les assemblys .NET standard, ont été perdues.
Le problème était dans mon web.config. J'avais commenté quelques lignes, aboutissant à un fichier XML invalide.
Je viens d’expérimenter cela avec VS2015 avec une solution comportant environ 20 projets. Un seul projet a été affecté et toutes les références, y compris les assemblys .NET standard, ont été perdues.
Le seul moyen que je pouvais résoudre était de changer de branche GIT, puis de revenir en arrière, cela a résolu le problème et tout fonctionne maintenant.
Cette erreur peut se produire si vous manquez le fichier .targets
dans le dossier nuget packages
. Dans mon cas, c'était packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets
Cela se produit généralement lorsque j'ajoute des packages dans le référentiel git (le fichier .gitignore
habituel ignore le dossier de construction partout) et que la transaction est effectuée sur un autre ordinateur.
Conseil: vous pouvez modifier le fichier .gitignore
pour inclure tous les fichiers du dossier packages
. Ajoutez ces lignes au bas:
# Include all files in NuGet packages directory
!/packages/**/
Décharger le projet, puis éditer le projet
recherchez ce qui suit et supprimez-le.
Ce projet fait référence aux packages NuGet manquants sur cet ordinateur. Activez la restauration du paquet NuGet pour les télécharger. Pour plus d'informations, voir http://go.Microsoft.com/fwlink/?LinkID=322105 . Le fichier manquant est {0} .