Nuget: Was ist der entsprechende „FrameworkName“ zum Erstellen von Paketen mit Windows Phone 7 -Binärdateien?
-
16-10-2019 - |
Frage
Ich habe gerade ein Nuget -Paket für eines meiner Open -Source -Projekte erstellt und es enthält ein Windows Phone 7 -Binär. Ich habe es gerade getestet und anstatt die 7-spezifische Bibliothek von Windows Phone hinzuzufügen, wurde die Silverlight Library hinzugefügt.
Meine Frage ist, wie kann ich meine Ordnerarchitektur so einrichten, dass der Nuget-Paket-Manager meine WP7-spezifischen Binärdateien erkennt und diese anstelle der Silverlight-Binärdateien installiert?
Ich folgte den hier aufgeführten Anweisungen Für die Ausrichtung mehrerer Frameworks in Nuget -Paketen.
So sieht mein Ordnerbaum derzeit aus:
\lib
\.NetFramework 4.0
\MyAssembly.dll
\Silverlight 4.0
\MyAssembly.Silverlight.dll
\Windows Phone 7
\MyAssembly.Mobile.dll
Was soll ich anders machen?
Lösung
Wir unterstützen WP7 nicht nativ, da es keine Profilunterstützung gibt (der Profilteil des Framework -Namens wird in Ordnern nicht unterstützt). Weitere Informationen finden Sie in dieser Ausgabe http://nuget.codeplex.com/workitem/219.
FWIW: Windows Phone 7 ist Silverlight 4, Profil = Windows Phone.
Im Moment müssen Sie ein weiteres Paket für WP7 erstellen.
Andere Tipps
Es sieht so aus, als wäre dies mit dem fixiert worden letzte Version (1.1) von Nuget. Sie können dies mit dem folgenden Test überprüfen (direkt aus den Nuget -Unit -Tests):
[TestMethod]
public void ParseFrameworkNameWithWPProfileGetNormalizedToWindowsPhone() {
// Act
var frameworkName = VersionUtility.ParseFrameworkName("sl4-wp");
// Assert
Assert.AreEqual("Silverlight", frameworkName.Identifier);
Assert.AreEqual(new Version("4.0"), frameworkName.Version);
Assert.AreEqual("WindowsPhone", frameworkName.Profile);
}