webentwicklung-frage-antwort-db.com.de

Nuget in Visual Studio 2015 installieren

Ich versuche, das Nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework in Visual Studio 2015 in einem einfachen Projekt zu installieren und erhielt die folgende Meldung:

Das Paket 'Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.0.30319.1' konnte nicht installiert werden. Sie versuchen, dieses Paket in einem Projekt zu installieren, das auf '.NETFramework, Version = v4.5.2' abzielt. Das Paket enthält jedoch keine Assemblyreferenzen oder Inhaltsdateien, die mit diesem Framework kompatibel sind. Weitere Informationen erhalten Sie vom Autor des Pakets. 

Wenn ich jedoch versuche, dieses Paket in Visual Studio 2013 im selben Projekt zu installieren, ist dies eine Arbeit.

Wie kann ich dieses Nuget in Visual Studio 2015 installieren?

25
ran

Die Zeit ist vergangen, aber es passiert mir, und ich habe festgestellt, dass es nichts mit der Framework-Version zu tun hat. Der wichtige Text der Fehlermeldung lautet: "... aber das Paket enthält keine Assemblyreferenzen oder Inhaltsdateien ...".

Tatsächlich enthält mein Paket keinen sichtbaren Inhalt für Nuget: Es verfügt über einen nicht konventionellen Ordner mit nativen Bibliotheken von Drittanbietern und eine Install.ps1, die ein Postbuild-Ereignis mit einem Xcopy-Befehl hinzufügt.

Fügen Sie einfach eine Dummy-Datei im Paket Content-Ordner oder einen anderen Dummy-Inhalt in lib, leeren Dateiknoten (nicht versucht) usw. ein.

EDIT 29/5/2017

Ich sehe, dass diese Antwort für andere nützlich ist, und deshalb werde ich noch etwas näher darauf eingehen.

Wie gesagt, das Problem ist, dass Nuget keinen Inhalt im Paket sieht, aber es kann zwei Ursachen haben:

  1. Das Paket hat wirklich keinen sichtbaren Inhalt, weil es den Inhalt mit einem Skript usw. verschiebt (wie es in meinem Fall der Fall war), und dann ist es erforderlich, einen Dummy-Inhalt als Problemumgehung zu erstellen.

  2. Es gibt einen Fehler in der Spezifikation eines Pakets, das einen Inhalt haben muss (wie im Fall von Evgeni Nabokov in den Kommentaren), und dann müssen Sie die Spezifikation korrigieren, um die Dinge in Kraft zu setzen.

Entschuldigung für mein schlechtes Englisch.

17
SERWare

Die Fehlermeldung besagt, dass es keine Version von Nuget für Ihre Framework-Version gibt. 

In VS2013 erstellen Sie das Projekt wahrscheinlich in der Version 4.5.0 oder 4.0.0 von .Net Framework.

Haben Sie versucht, die .NET-Version Ihres Projekts auf 4.5.2 zu ändern? 

11
Andrius

Ich hatte dieses Problem, als ich meine Nuget-Pakete in TeamCity erstellte, sie in lokaler Artifactory veröffentlichte und dann versuchte, diese Pakete in anderen Projekten zu verwenden.

Um dieses Problem zu vermeiden, müssen Sie in TeamCity BuildSteps ==> NuGet Pack ==> Paketparameter ==> Spezifikationsdateien .csproj-Datei über die Nuspec-Datei auswählen und die Option "Projektdateien der .nuspec vorziehen" auswählen.

Das Paket, das auf diese Weise erstellt wird, kann problemlos importiert werden und es gibt keine weiteren Beschwerden von VS.

2

Dies kann passieren, wenn der .NET-Standard der Lösung und das entsprechende NuGet-Paket nicht übereinstimmen. Hier ist eine Tabelle aus diesem Link :

╔════════════════════════════╦═══════════════════════════════════════════════════════════════╗
║ .NET Platform              ║ .NET Standard                                                 ║
╠════════════════════════════╬═══════╦═══════╦═══════╦═══════╦═══════╦═══════╦═══════╦═══════╣
║                            ║  1.0  ║  1.1  ║  1.2  ║  1.3  ║  1.4  ║  1.5  ║  1.6  ║  2.0  ║
╠════════════════════════════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╬═══════╣
║ .NET Core                  ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║  1.0  ║ vNext ║
║ .NET Framework             ║   →   ║  4.5  ║ 4.5.1 ║  4.6  ║ 4.6.1 ║ 4.6.2 ║ vNext ║ 4.6.1 ║
║ Xamarin.iOS                ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║ vNext ║
║ Xamarin.Android            ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║   →   ║ vNext ║
║ Universal Windows Platform ║   →   ║   →   ║   →   ║   →   ║ 10.0  ║   →   ║   →   ║ vNext ║
║ Windows                    ║   →   ║  8.0  ║  8.1  ║       ║       ║       ║       ║       ║
║ Windows Phone              ║   →   ║   →   ║  8.1  ║       ║       ║       ║       ║       ║
║ Windows Phone Silverlight  ║  8.0  ║       ║       ║       ║       ║       ║       ║       ║
╚════════════════════════════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╩═══════╝

Sie müssen sowohl das Framework als auch die .NET-Standardversion anpassen. Ich bevorzuge den .NET-Standard 1.4 und .NET Framework 4.6.1. Durch die Erstellung des .NET-Standards kodifiziert Microsoft die Forderung nach einheitlichen APIs auf allen .NET-Plattformen. Es scheint, als wenn Sie Ihre Lösungen auf diese Kompatibilitätsstufe migrieren, "Inkompatibilität" oder das Erkennen des Rades nach jedem Update eine Erinnerung an die Vergangenheit sein. 

1
Kerem Ercoskun

Ich bekam das und es machte keinen Sinn, da ich es bereits in einem Framework 4.6-Projekt ohne Probleme verwendete und der Fehler sagte mir, dass es nicht mit Framework 4.6 funktionieren würde, von dem ich wusste, dass es nicht falsch ist.

Am Ende habe ich es gelöst, indem ich ein weiteres Testprojekt erstellt habe, die cs-Dateien usw. aus meinem alten Testprojekt kopiert und dann UnitTestFramework über NuGet installiert habe. Es funktioniert gut.

Es passiert also etwas, das nur Microsoft lösen kann, würde ich vermuten, aber ein Neustart scheint das Problem zu beheben.

1
Ewan

Ich habe festgestellt, dass die DynamicInterop.0.8.1.nupkg die DLL-Datei in einem Ordner 'lib\netstandard1.2' hat. Ich habe gerade den Ordnernamen in lib\net40 geändert und das Paket würde ok installieren (im .m mit VS2013). Außerdem: Die .nupkg-Datei ist nur eine ZIP-Datei, sodass Sie mit jedem Zip-Tool den Inhalt bearbeiten können.

0
user2867342

Es scheint, dass das Erstellen eines "Unit-Test-Projekts" anstelle von "Klassenbibliothek" das Problem löst. Ich habe mit der "Class Library" ohne Erfolg gekämpft, aber das Entfernen des Projekts und das Erstellen eines neuen aus der Vorlage "Unit Test Project" wurde mit der Datei Microsoft.VisualStudio.QualityTools.UnitTestFramework Version 10.0.0.0 installiert.

0
Mauro Bilotti