Ich arbeite an einem Projekt, das nuget verwendet, aber nicht Paketwiederherstellung verwendet. (Dies ist eine Entscheidung, die außerhalb meiner Kontrolle liegt, daher sind alle Antworten, die das Aktivieren der Paketwiederherstellung betreffen, keine, die ich verwenden kann.)Nicht Paketwiederherstellung verwenden, aber immer noch "muss nuget Paket Microsoft.Bcl.Build installieren"
Eine Handvoll Projekte in der Lösung (4 von a insgesamt 34, ein Projekt WinJS App Store, zwei gewöhnlichen .NET-Klassenbibliothek, und einer meiner Azure Cloud-Projekte) berichten diese berüchtigte Warnung:
...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.
diese Verbindung geht davon aus, dass ich mich wenden werden wollen Paketwiederherstellung auf. Das gilt auch für alle anderen Ratschläge, die ich bisher zu diesem Thema gefunden habe.
Ich habe versucht, die Paketwiederherstellung unter Optionen -> Paket-Manager -> Allgemeine Einstellungen zu deaktivieren. Das hilft nicht (und selbst wenn es so wäre, wäre es unerwünscht - ich benutze die Paketwiederherstellung in allem anderen, an dem ich arbeite).
Ich verstehe nicht wirklich, warum ich das in einer Lösung bekomme, die Paketwiederherstellung nicht verwendet. Wie ich es verstehe, ist der ganze Punkt des Pakets, das es verlangt, Paketwiederherstellung zu unterstützen. In einer Lösung, in der Paketwiederherstellung nicht verwendet wird, scheint es daher seltsam, dass dieses Paket vorhanden ist.
Es scheint jedoch, dass bestimmte andere nugget-Pakete dazu führen, dass Sie davon abhängig sind. Ich habe ein Windows Runtime Component-Projekt, das Microsoft.Bcl
verwendet, ein Nugget-Paket, das aus irgendeinem Grund eine Abhängigkeit von Microsoft.Bcl.Build
hat. (Visual Studio schien das Microsoft.Bcl
-Paket hinzuzufügen, als ich das Projekt erstellte. Vermutlich ist es notwendig.) Andere Projekte scheinen über die HTTP-Clientbibliotheken eine Abhängigkeit von Microsoft.Bcl.Build
zu erhalten.
Offenbar scheinen bestimmte gängige nuget-Pakete eine Abhängigkeit von Microsoft.Bcl.Build
zu erzwingen, unabhängig davon, ob Sie die Paketwiederherstellung verwenden oder nicht.
Das wäre in Ordnung, wenn Sie die Warnung beseitigen könnten, indem Sie allen Projekten, die diese Warnung erhalten, das entsprechende Paket hinzufügen. Aber die ärgerliche Sache ist, dass, selbst wenn ich das Microsoft.Bcl.Build
Paket den verbrauchenden Komponenten hinzufüge (z. B. meine WinJS Window Store App), bekomme ich immer noch diese Warnung! (So beschwert es sich weiter, dass ich das nugget-Paket installieren muss, auch nachdem ich es installiert habe.)
Weiß jemand, wie man diese Warnung in dieser Situation beseitigt? Zu tun, was es von mir verlangt, scheint nicht ausreichend zu sein. Was fehlt?
Haben Sie versucht, die SkipValidatePackageReferences Eigenschaft mit in das Projekt wie in der vorgeschlagenen Microsoft.Bcl.Build.targets-Datei? –
Das wird zwar los, aber wird es nicht auch legitime Warnungen verhindern? Wenn Projekt U das Projekt P verwendet, sollte U alle die gleichen nugget-Pakete wie P haben. Normalerweise wird nuget prüfen und Ihnen sagen, ob Ihnen etwas fehlt, aber diese Einstellung deaktiviert diese Überprüfung. Ich möchte Warnungen erhalten, wenn ich wirklich ein Paket vermisse, aber keine Warnungen über 'Microsoft.Bcl.Build 'bekomme, wenn ich tatsächlich einen Hinweis darauf habe. –
Weiß nicht, ob die Paketwiederherstellung aktiviert ist OOTB in v2.7 + von NuGet ist jede Verwendung (Know zilch von 'Microsoft.Bcl.Build') –