it-swarm.com.de

warnung: Alle Projekte, auf die MyProject.csproj verweist, müssen das Nuget-Paket Microsoft.Bcl.Build installieren

Ich habe eine in VS 2012 entwickelte ASP.NET MVC 4-App. Die App besteht aus einem Hauptprojekt (MyProject), einem Komponententestprojekt (MyProject.Tests), einem Azure-Bereitstellungsprojekt (MyProject.Azure) und mehreren Universelle Bibliotheksprojekte.

Wenn ich mit der rechten Maustaste auf die Projektmappe oder das Hauptprojekt klicke und NuGet-Pakete verwalten wähle, sehe ich eine Reihe von Microsoft-Updates, die anscheinend im letzten Monat verfügbar waren. Wenn ich auf die Schaltfläche Alle Aktualisieren klicke, werden die Aktualisierungen anscheinend ohne offensichtliche Probleme installiert. Wenn ich jedoch die Lösung baue, erhalte ich diese Fehlermeldung ZWEIMAL:

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

Ok, also habe ich zwei Projekte, die auf MyProject verweisen: MyProject.Tests und MyProject.Azure. Ich kann mit der rechten Maustaste auf MyProject.Tests klicken, ManageNuGet Packages auswählen und Microsoft.Bcl.Build hinzufügen. Damit wird eine der beiden Warnungen beseitigt. VS gibt mir jedoch keine Option zum Verwalten von NuGet-Paketen für das Projekt MyProject.Azure.

Wie füge ich das Microsoft.Bcl.Build-Paket zum Azure-Bereitstellungsprojekt hinzu?

BEARBEITEN:

Dank des Benutzers swell weiß ich jetzt, dass ein Microsoft Connect-Problem für dieses Problem hier geöffnet wurde.

82

Wenn Sie die Warnung doppelt anklicken, erhalten Sie Anweisungen zum Deaktivieren der Warnung.

Es ist sicher, für Projektreferenzen von Projekten zu deaktivieren, die Nuget noch nicht unterstützen. 

Siehe unten in fett kopiert aus Microsoft.Bcl.Build.targets.

BclBuildValidateNugetPackageReferences

Dieses Ziel kann für eine Projektreferenz deaktiviert werden, indem Sie SkipValidatePackageReferences = true für die Referenz setzen:

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

Die Antwort von TheESJ ist korrekt, aber der Wortlaut war mir nicht klar. Da ich die Antwort nicht kommentieren kann, werde ich hier weitere Details angeben. Ich hatte dieses Problem insbesondere mit einem Azure -Projekt und die folgende Problemumgehung war erforderlich, um die Warnung zu entfernen:

Wenn Sie auf die Warnung in VisualStudio doppelklicken, gelangen Sie zum Ziel BclBuildValidateNugetPackageReferences in der Datei Microsoft.BclBuild.targets. Oberhalb des eigentlichen Zielelements sollten Sie einen großen Kommentarblock finden, der über das Deaktivieren der Projektreferenzprüfungen spricht. Da Azure-Projekte keine Bibliotheksverweise haben können, können diese Azure-Projekte die Anforderungen dieses bestimmten Buildziels nicht erfüllen.

Die Lösung? Deaktivieren Sie die Referenzprüfung im Azure-Projekt, da es nicht möglich ist, tatsächlich eine Nuget-Paketreferenz hinzuzufügen.

BEISPIEL

Nehmen wir an, wir haben zwei Projekte: MyAzureProject.ccproj welche referenziert MyProject.csproj . Folge diesen Schritten:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "MyAzureProject" und wählen Sie "Projektdatei bearbeiten".
  2. Suchen Sie den Projektverweis auf "Mein Projekt". Es sollte ungefähr so ​​aussehen:

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
    </ProjectReference>
    
  3. Fügen Sie das folgende Element innerhalb des ProjectReference-Elements hinzu:

      <Properties>SkipValidatePackageReferences=true</Properties>
    
  4. Ihre Projektreferenz sollte jetzt so aussehen:

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
      <Properties>SkipValidatePackageReferences=true</Properties>
    </ProjectReference>
    
  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "MyAzureProject" und wählen Sie "Projekt neu laden".

Sie sollten jetzt neu erstellen können und der Fehler sollte verschwunden sein.

59
AggieEric

Ich hatte das gleiche Problem und versuchte, Microsoft.Bcl.Build.targets zu aktualisieren. was nicht geholfen hat.

Nach einigen Untersuchungen wurde festgestellt, dass die Datei .csproj des Azure-Dienstprojekts so geändert werden muss, dass sie <Properties>SkipValidatePackageReferences=true</Properties> enthält.

Dies ging aus der Antwort von @TheESJ nicht hervor und entschied sich daher, eine separate Antwort zu posten. Danke an @TheESJ.

15
Santosh

Dieses Problem ist mir schon mehrmals begegnet, und die Properties-Methode funktioniert zwar, aber bei einem Wix-Projekt musste ich stattdessen Folgendes tun:

<AdditionalProperties>SkipValidatePackageReferences=true</AdditionalProperties>

Bei der Verwendung des Properties-XML-Knotens wurde ein neuer Fehler angezeigt:

Die OutputPath-Eigenschaft ist nicht für das Projekt festgelegt "MeinInstallerProject.csproj". Bitte überprüfen Sie, ob Sie haben eine gültige Kombination aus Konfiguration und Plattform für .__ angegeben. dieses Projekt. Konfiguration = 'Debug' Plattform = 'x86'. Dieser Fehler kann erscheint auch, wenn ein anderes Projekt versucht, einer .__ zu folgen. Projekt-zu-Projekt-Verweis auf dieses Projekt wurde dieses Projekt entladen oder ist nicht in der Lösung enthalten, und die Referenzierung Projekt wird nicht mit derselben oder einer gleichwertigen Konfiguration erstellt oder Plattform.

0
ozz