Windows 8.1 Enterprise x64, Visual Studio 2015, MVC 5, EF 6, VS Online en utilisant git
Je suis un développeur relativement nouveau avec Visual Studio (environ neuf mois), et depuis que j'ai commencé, j'ai eu un moment incroyablement difficile avec les références et les packages NuGet. Toutes mes références fonctionnaient correctement vendredi lorsque j'ai éteint mon ordinateur pour le week-end. Je n'ai pas touché à l'ordinateur du tout le week-end, maintenant j'ai démarré aujourd'hui et j'ai une tonne d'erreurs de référence:
(Il y a 6 262 erreurs au total, mais je ne peux évidemment pas faire une capture d'écran complète.)
Comme je l'ai dit, ce genre de problème se produit très souvent et c'est incroyablement frustrant. Ce que j'ai essayé:
packages
et laissez NuGet les restaurer (tous réinstallés, les vues ont les mêmes erreurs qu'auparavant)Copy Local
bin
et obj
, redémarrez l'ordinateur, nettoyez, reconstruisezweb.config
Correspondant (à l'intérieur de Views
ou à la racine)packages
local)Je suis à bout de souffle avec ces packages et références. C'est une solution différente à chaque fois, et cette fois je ne peux pas le comprendre. Suis-je en train de manquer une solution évidente, quelque chose que j'ai oublié? Existe-t-il un moyen de prendre en quelque sorte une sauvegarde lorsque cela fonctionne et de la restaurer chaque fois que les choses se cassent? Toute idée, que ce soit pour aider avec le problème actuel ou pour résoudre le problème sous-jacent, serait très appréciée.
Remarque supplémentaire
Le problème n'est PAS seulement avec les vues - les contrôleurs génèrent également des erreurs. Plus précisément:
Le type ou le nom de l'espace de noms 'Controller' est introuvable (manque-t-il une directive using ou une référence d'assembly?)
(Il dit littéralement Controller
, ce n'est pas quelque chose que j'ai changé pour la confidentialité ou autre chose.)
Celles-ci sont levées malgré le fait que j'ai des instructions using
pour tous les espaces de noms nécessaires. Les instructions using
elles-mêmes fonctionnent correctement, mais l'erreur est renvoyée dans le code. La correction automatique suggérée consiste à tout référencer manuellement: par exemple, var sb = new StringBuilder();
veut que je change la ligne en var sb = new System.Text.StringBuilder();
. Tester ce correctif ne résout pas le problème, la même erreur est renvoyée mais sur System
au lieu de StringBuilder
.
Informations supplémentaires demandées
.gitignore
)..csproj
Sont au format ..\..\..\packages\
(Correct pour l'emplacement par rapport au fichier .csproj
).Il y a une seule chose que vous devez faire pour que les packages fonctionnent correctement avec git:
Lorsque vous créez un référentiel, assurez-vous d'ajouter un .gitignore adapté au développement de Visual Studio. Vous pouvez rechercher un tel fichier sur Google ou le retirer de ici .
Cela vous assurera de ne rien commettre qui pourrait causer des problèmes plus tard.
Cela devrait résoudre de nombreux problèmes qui se produisent généralement lorsque vous archivez des packages dans un référentiel de code. Vous pouvez ajouter/supprimer des packages et mettre à niveau des packages et également être en mesure de cloner le référentiel sur une nouvelle machine et les packages seront restaurés automatiquement.
C'est bon pour les nouveaux projets. Si vous avez déjà un projet avec un gros désordre, il est très difficile de le réparer car Visual Studio conserve les versions des packages à plusieurs endroits - packages.config et app.config (et web.config le cas échéant).
Vous pouvez supprimer tous les packages (supprimer toutes les références de tous les projets et supprimer le contenu du package).
Assurez-vous que les packages n'apparaissent plus dans aucun fichier (par exemple packages.config ou app.config). Ajoutez maintenant le .gitignore puis recommencez à ajouter les packages.
Si cela ne fonctionne pas, démarrez un nouveau projet, ajoutez le .gitignore, transférez tout le code (uniquement votre code) et installez les packages.
Je ne suis pas très familier avec le fonctionnement de Git dans VS, mais je me souviens une fois récemment lors de l'utilisation de TFS qui a dissocié la solution du contrôle de code source, réparé tous les packages, nettoyé et reconstruit avant de le lier à nouveau résolu un tas de problèmes concernant NuGet les références.
Je m'excuse si Git fonctionne différemment dans VS.