J'ai une application ASP.NET MVC 4 développée dans VS 2012. L'application se compose d'un projet principal (MyProject), d'un projet de test unitaire (MyProject.Tests), d'un projet de déploiement Azure (MyProject.Azure) et de quelques projets de bibliothèque à usage général.
Lorsque je clique avec le bouton droit sur la solution ou le projet principal et que je sélectionne Gérer les packages NuGet, je vois un tas de mises à jour Microsoft qui sont apparemment devenues disponibles au cours du dernier mois environ. Si je clique sur le bouton Tout mettre à jour, les mises à jour sont apparemment installées sans aucun problème évident, mais lorsque je construis la solution, j'obtiens ce message d'erreur DEUX FOIS:
warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build
Ok, j'ai donc deux projets qui font référence à MyProject: MyProject.Tests et MyProject.Azure. Je peux cliquer avec le bouton droit sur MyProject.Tests, sélectionner ManageNuGet Packages et ajouter Microsoft.Bcl.Build. Cela supprime l'un des deux avertissements. Mais VS ne me donne pas la possibilité de gérer les packages NuGet pour le projet MyProject.Azure .
Comment ajouter le package Microsoft.Bcl.Build au projet de déploiement Azure?
ÉDITER:
Grâce au gonflement des utilisateurs , je sais maintenant qu'un problème Microsoft Connect pour ce problème a été ouvert ici .
la source
Réponses:
Si vous double-cliquez sur l'avertissement, il vous donne des instructions pour désactiver l'avertissement.
Il est prudent de désactiver les références de projet des projets qui ne prennent pas encore en charge Nuget.
Voir la partie ci-dessous en gras copiée à partir de Microsoft.Bcl.Build.targets.
BclBuildValidateNugetPackageRéférences
Cette cible peut être désactivée pour une référence de projet en définissant SkipValidatePackageReferences = true pour la référence:
la source
La réponse fournie par TheESJ est correcte, mais le libellé n'était pas clair pour moi. Comme je ne peux pas commenter la réponse, je fournirai plus de détails ici. Plus précisément, j'avais ce problème avec un projet Azure et la solution de contournement suivante était nécessaire pour que l'avertissement disparaisse:
Lorsque vous double-cliquez sur l'avertissement dans VisualStudio, vous serez redirigé vers la cible BclBuildValidateNugetPackageReferences dans le fichier Microsoft.BclBuild.targets. Au-dessus de l'élément cible réel, vous devriez trouver un grand bloc de commentaires qui parle de la désactivation des vérifications de référence du projet. Étant donné que les projets Azure ne peuvent pas avoir de références de bibliothèque, il est impossible pour ces projets Azure de répondre aux exigences de cette cible de build particulière.
La solution? Désactivez la vérification des références à partir du projet Azure car il est impossible d'ajouter réellement une référence de package nuget.
EXEMPLE
Supposons donc que nous ayons deux projets: MyAzureProject.ccproj qui fait référence à MyProject.csproj . Suivez ces étapes:
Recherchez la référence du projet à «MyProject». Cela devrait ressembler à quelque chose comme:
Ajoutez l'élément suivant à l'intérieur de l'élément ProjectReference:
La référence de votre projet devrait maintenant ressembler à ceci:
Cliquez avec le bouton droit sur "MyAzureProject" dans l'Explorateur de solutions et choisissez "Recharger le projet".
Vous devriez maintenant pouvoir reconstruire et l'erreur devrait disparaître.
la source
MyAzureProject.ccproj
plutôt queMyAzureProject.csproj
?J'ai rencontré le même problème et j'essayais de mettre à jour Microsoft.Bcl.Build.targets; ce qui n'a pas aidé.
Après une enquête, il a été constaté que le fichier .csproj du projet Azure Service doit être modifié pour inclure
<Properties>SkipValidatePackageReferences=true</Properties>
.Cela n'apparaissait pas dans la réponse de @TheESJ et a donc décidé de publier une réponse distincte. Merci à @TheESJ.
la source
J'ai rencontré ce problème à plusieurs reprises et la méthode Properties fonctionne effectivement, mais lorsque j'ai affaire à un projet Wix, j'ai dû faire ce qui suit à la place:
Lorsque j'ai utilisé le nœud Properties Xml, j'ai eu une nouvelle erreur:
la source