Ich habe eine ASP.NET MVC 4-App, die in VS 2012 entwickelt wurde. Die App besteht aus einem Hauptprojekt (MyProject), einem Unit-Test-Projekt (MyProject.Tests), einem Azure-Bereitstellungsprojekt (MyProject.Azure) und einigen anderen Allzweck-Bibliotheksprojekte.
Wenn ich mit der rechten Maustaste auf die Lösung oder das Hauptprojekt klicke und NuGet-Pakete verwalten auswähle, werden einige Microsoft-Updates angezeigt, die anscheinend im letzten Monat oder so verfügbar wurden. Wenn ich auf die Schaltfläche Alle aktualisieren klicke, werden die Updates anscheinend ohne offensichtliche Probleme installiert, aber wenn ich die Lösung erstelle, wird diese Fehlermeldung ZWEIMAL angezeigt:
warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build
Ok, ich habe zwei Projekte, die auf MyProject verweisen: MyProject.Tests und MyProject.Azure. Ich kann mit der rechten Maustaste auf MyProject.Tests klicken, ManageNuGet-Pakete auswählen und Microsoft.Bcl.Build hinzufügen. Damit wird eine der beiden Warnungen beseitigt. Aber VS gibt mir keine Option NuGet Pakete für das MyProject.Azure Projekt zu verwalten .
Wie füge ich das Microsoft.Bcl.Build-Paket zum Azure-Bereitstellungsprojekt hinzu?
BEARBEITEN:
Dank Benutzer Seegang , ich weiß jetzt , dass ein Microsoft Connect Problem für dieses Problem wurde geöffnet hier .
quelle
Antworten:
Wenn Sie auf die Warnung doppelklicken, erhalten Sie Anweisungen zum Deaktivieren der Warnung.
Es ist sicher, Projektreferenzen von Projekten zu deaktivieren, die Nuget noch nicht unterstützen.
Siehe den folgenden fett gedruckten Teil, der von Microsoft.Bcl.Build.targets kopiert wurde.
BclBuildValidateNugetPackageReferences
Dieses Ziel kann für eine Projektreferenz deaktiviert werden, indem SkipValidatePackageReferences = true für die Referenz festgelegt wird:
quelle
Die Antwort von TheESJ ist richtig, aber der Wortlaut war mir nicht klar. Da ich die Antwort nicht kommentieren kann, werde ich hier weitere Details bereitstellen. Insbesondere hatte ich dieses Problem mit einem Azure- Projekt und die folgende Problemumgehung war erforderlich, damit die Warnung nicht mehr angezeigt wird:
Wenn Sie in VisualStudio auf die Warnung doppelklicken, werden Sie zum Ziel BclBuildValidateNugetPackageReferences in der Datei Microsoft.BclBuild.targets weitergeleitet. Über dem eigentlichen Zielelement sollte sich ein großer Kommentarblock befinden, in dem über das Deaktivieren der Projektreferenzprüfungen gesprochen wird. Da Azure-Projekte keine Bibliotheksreferenzen haben können, können diese Azure-Projekte die Anforderungen dieses bestimmten Build-Ziels nicht erfüllen.
Die Lösung? Deaktivieren Sie die Referenzprüfung im Azure-Projekt, da keine Nuget-Paketreferenz hinzugefügt werden kann.
BEISPIEL
Angenommen , wir haben zwei Projekte: MyAzureProject.ccproj, das auf MyProject.csproj verweist . Folge diesen Schritten:
Suchen Sie den Projektverweis auf "MyProject". Es sollte ungefähr so aussehen:
Fügen Sie das folgende Element in das ProjectReference-Element ein:
Ihre Projektreferenz sollte nun folgendermaßen aussehen:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "MyAzureProject" und wählen Sie "Projekt neu laden".
Sie sollten jetzt in der Lage sein, neu zu erstellen, und der Fehler sollte behoben sein.
quelle
MyAzureProject.ccproj
eher alsMyAzureProject.csproj
?Ich hatte das gleiche Problem und versuchte, Microsoft.Bcl.Build.targets zu aktualisieren. das hat nicht geholfen.
Nach einigen Untersuchungen wurde festgestellt, dass die .csproj-Datei des Azure Service-Projekts so geändert werden muss, dass sie enthält
<Properties>SkipValidatePackageReferences=true</Properties>
.Dies war aus der Antwort von @TheESJ nicht ersichtlich und entschied sich daher, eine separate Antwort zu veröffentlichen. Vielen Dank an @TheESJ.
quelle
Ich bin mehrmals auf dieses Problem gestoßen, und die Properties-Methode funktioniert zwar, aber bei einem Wix-Projekt musste ich stattdessen Folgendes tun:
Bei Verwendung des Eigenschaften-XML-Knotens wurde ein neuer Fehler angezeigt:
quelle