2014-02-26 6 views
23

In einem der Projekte musste ich das jQuery NuGet-Paket (eine MVC-Lösung) neu installieren.Das Hinzufügen des Pakets "Microsoft.jQuery.Unobtrusive.Validation" fragt nach jQuery 1.4.1?

Es gab auch eine "Microsoft.jQuery.Unobtrusive.Validation", die ich vor dem Entfernen des jQuery-Pakets deinstallieren sollte.

Jetzt versuche ich, das jQuery-Paket und alle abhängigen Pakete, die ich zuvor entfernt habe, zu installieren. Das Paket "Microsoft.jQuery.Unobtrusive.Validation" bricht ab:

Versuch, Abhängigkeit "jQuery (≥ 1.8)" aufzulösen.
Versuch, Abhängigkeit 'jQuery.Validation (≥ 1.8)' aufzulösen.
Versuch, die Abhängigkeit zu lösen 'jQuery (≥ 1.3.2 & & ≤ 1,6)'.
Die Aktualisierung von 'jQuery 1.8.0' auf 'jQuery 1.4.1' ist fehlgeschlagen.
Es konnte keine Version von 'Microsoft.jQuery.Unobtrusive.Validation' gefunden werden, die kompatibel mit 'jQuery 1.4.1' ist.

war das? Ich muss die neueste jQuery (2.0.xx) verwenden!

Ich sollte bemerken, dass die ähnliche "Microsoft.jQuery.Unobtrusive. Ajax" -Paket nicht diesen "Fehler" hat. Es wurde ohne Probleme installiert.

PS. Jetzt habe ich versucht, die (nicht-Microsoft) jQuery.Validation zu installieren ...

dies ist das Fehlerprotokoll:

Der Versuch, die Abhängigkeit ‚Microsoft.jQuery.Unobtrusive.Validation zu lösen (≥ 2.0.20613.0) ".
Versuch, die Abhängigkeit zu lösen 'jQuery.Validation (≥ 1.8 & & < 2.0)'.
Versuch, die Abhängigkeit zu lösen 'jQuery (≥ 1.3.2 & & ≤ 1,6)'.
Installation von 'jQuery 1.4.1'. "JQuery 1.4.1" wurde erfolgreich installiert.
Installation von 'jQuery.Validation 1.8'.
Erfolgreich installiert 'jQuery.Validation 1.8'.
Installation von 'Microsoft.jQuery.Unobtrusive.Validation 2.0.20710.0'.
Erfolgreich installiert 'Microsoft.jQuery.Unobtrusive.Validation 2.0.20710.0'.
Installation von 'jQuery.Validation.Unobtrusive 2.0.20710.0'.
Erfolgreich installiert 'jQuery.Validation.Unobtrusive 2.0.20710.0'.
Installation fehlgeschlagen.
Rollback ...
Aktualisierung von 'jQuery 1.9.0' auf 'jQuery 1.4.1' fehlgeschlagen. Es konnten keine Versionen von 'bootstrap, jQuery.BlockUI, Microsoft.jQuery.Unobtrusive.Ajax' gefunden werden, die mit 'jQuery 1.4.1' kompatibel sind.

Antwort

48

Ich bin gerade in das gleiche Problem jetzt gerannt.

NuGet Verwendung Ich habe "jQuery", dann "jQuery Validatation" Tried "Microsoft jQuery Unauffällig Validation" wieder, dieses Mal ist es schön :)

+3

danke! so seltsam, dass nugget das nicht herausfinden kann ... –

+1

Ja ... das ist sicher ein Fehler, bei dem NuGet Abhängigkeiten nicht richtig lösen kann. Das twitterte das an das NuGet-Team: https://twitter.com/johnleniel/status/453250061473161217 –

+0

+1 Ziemlich frustrierend, dass 'Microsoft.Jquery.Unobtrusive.Validation' nicht weiß, nach seiner eigenen' Jquery.Validation' zu suchen Abhängigkeit. Und was ist dieses 'jQuery 1.4.1' Geschäft überhaupt? –

2

gleiche Problem hier installiert. Ich habe das jQuery 2.1.0-Paket installiert und dann jQuery Validate installiert, dann jQuery Unobtrusive installiert und es hat funktioniert.

9

jQuery 1.x und jQuery 2.x sind zwei separate Zweige von jQuery. jQuery 1.x bietet weiterhin Unterstützung für ältere Versionen von IE (6/7/8), während 2.x dies nicht unterstützt. Im Wesentlichen gibt es zwei "neueste" Versionen von jQuery.

Die jQuery-Validierung wird derzeit nicht mit dem 2.x-Zweig und currently lists 1.6.4, 1.7.2, 1.8.3, 1.9.1, 1.11.1 as supported/tested getestet. Es kann mit jQuery 2.x gut funktionieren, aber technisch wird es derzeit nicht unterstützt. Aus diesem Grund habe ich die neueste Version von jQuery 1.x beibehalten.

Wie beheben Sie das?

Um dieses Problem zu beheben, wechseln Sie zur neuesten Version von jQuery 1.x (derzeit 1.11.1), indem Sie den folgenden Befehl in der Package Manager-Konsole eingeben, um den Verweis von 2.x auf 1.11.1 zu aktualisieren.

Install-Package jQuery -Version 1.11.1 

Wie @Dragick zuvor gesagt, ist es eine seltsame Abhängigkeitsproblem wo Microsoft.jQuery.Unobtrusive.Validation nuget nicht die jQuery-Version feststellen können, wenn Sie versuchen, es direkt zu installieren, ohne bereits jQuery.Validation nuget installiert ist. Um dies zu beheben, installieren Sie sie separat wie folgt:

Install-Package jQuery.Validation 
Install-Package Microsoft.jQuery.Unobtrusive.Validation