97 votes

avertissement : Tous les projets de référencement MyProject.csproj devez installer le package nuget Microsoft.Bcl.Construire

J'ai un ASP.NET MVC 4 application développée en VS 2012. L'application se compose d'un projet principal (MyProject), une unité de test du projet (MyProject.Les Tests), l'Azur de projet de déploiement (MyProject.Azure), et un couple de fins générales de la bibliothèque de projets.

Quand je clic droit sur la solution ou le projet principal et sélectionnez Gérer les Packages NuGet, je vois un tas de mises à jour Microsoft qui ont apparemment devenu disponible dans le dernier mois ou deux. Si je clique sur le bouton Tout mettre à Jour, puis les mises à jour sont apparemment installé sans problèmes évidents, mais quand j'ai construit la solution que j'obtiens ce message d'erreur à deux reprises:

warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build

Ok, donc j'ai deux projets qui font référence à MyProject: MyProject.Tests et MyProject.Azure. J'pouvez droit-cliquez sur MyProject.Tests, sélectionnez ManageNuGet Paquets, et ajouter de Microsoft.Bcl.Construire. Qui se débarrasse de l'une des deux mises en garde. Mais VS ne me donne pas une option pour gérer les packages NuGet pour la MyProject.Azure projet.

Comment puis-je ajouter de Microsoft.Bcl.Construire un package pour le déploiement Azure projet?

EDIT:

Merci à l'utilisateur de la houle, je sais maintenant que Microsoft Connect problème pour ce problème a été ouvert ici.

67voto

AggieEric Points 176

La réponse fournie par TheESJ est correcte, mais la formulation n'était pas clair pour moi. Depuis que je ne peut pas commenter la réponse, je vais donner plus de détails ici. Plus précisément, j'ai eu ce problème avec un Azure projet et la solution de contournement suivante a été nécessaire pour faire la mise en garde s'en aller:

Lorsque vous double-cliquez sur le message d'avertissement dans VisualStudio, vous serez redirigé vers la BclBuildValidateNugetPackageReferences cible dans le Microsoft.BclBuild.les objectifs de fichier. Au-dessus de la cible réelle de l'élément, vous devriez trouver un grand bloc de commentaire qui parle de la désactivation du projet de vérification des références. Depuis Azure projets ne peuvent pas avoir une bibliothèque de références, il est impossible pour ces projets Azure pour répondre aux besoins de cette cible de génération.

La solution? Désactiver la vérification des références dans l'Azur du projet puisqu'il est impossible d'ajouter un package nuget de référence.

EXEMPLE

Ainsi, supposons que nous avons deux projets: MyAzureProject.ccproj les références MyProject.csproj. Suivez ces étapes:

  1. Cliquez-droit sur "MyAzureProject" dans l'Explorateur de solutions et sélectionnez "Modifier le Fichier de Projet."
  2. Trouver la référence de projet à "Monprojet." Il devrait ressembler à quelque chose comme:

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
    </ProjectReference>
    
  3. Ajoutez l'élément suivant à l'intérieur de la ProjectReference élément:

      <Properties>SkipValidatePackageReferences=true</Properties>
    
  4. Votre projet de référence devrait maintenant ressembler à ceci:

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
      <Properties>SkipValidatePackageReferences=true</Properties>
    </ProjectReference>
    
  5. Cliquez-droit sur "MyAzureProject" dans l'Explorateur de solutions et choisissez l'option "Recharger Projet."

Vous devriez maintenant être capable de reconstruire et de l'erreur doit être passé.

59voto

TheESJ Points 1170

Si vous double-cliquez sur l'avertissement, il vous donne des instructions sur la désactivation de l'avertissement.

Il est préférable de les désactiver pour projectreferences de projets qui ne sont pas encore en charge Nuget.

Voir ci-dessous partie en gras copié à partir de Microsoft.Bcl.Construire.les cibles.

BclBuildValidateNugetPackageReferences

Cette cible peut être désactivé pour un projet de référence par la mise en SkipValidatePackageReferences=true pour la référence:

<ProjectReference Include="..\pcl\pcl.csproj">
  <Project>{664a9e98-fac7-4567-a046-0dde95fddb48}</Project>
  <Name>pcl</Name>
  <Properties>SkipValidatePackageReferences=true</Properties>
</ProjectReference>

16voto

Santosh Points 946

J'ai connu le même problème et a essayé de mettre à jour Microsoft.Bcl.Construire.cibles; ce qui n'a pas aidé.

Après quelques recherches, trouvé que .ccproj fichier de l'Azur d'un projet de Service doit être modifié pour inclure l' <Properties>SkipValidatePackageReferences=true</Properties>.

Ce n'était pas évident à partir de la réponse de @TheESJ et il a donc décidé de poster de réponses séparée. Grâce à @TheESJ.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X