Manuelles
Umwandeln von WPF, Winforms zu UWP
Anleitung
Tutorial unter
#Bridge,Win32,Convert,
DAC,WPF,WinForms
Schritte:
Schritt 1: Solution Projekt erweiten
neues Projekt hinzufügen
Die Windows 32 Solution im Projekt markieren (WPF oder
Windows Forms WinForms)
Dann dem Projekt unter Add->New Projekt ein
zusätzliches Projekt hinzfügen
Schritt 2: uwpApp anfügen
Unter Add New Project->Other Languages->Javascript
Blank App (Universal Windows) auswählen
Das neue Projekt mit uwpApp benennen
Schritt 3: exe übertragen
dann im Javascript Projekt uwpApp einen win32 Unterordner erstellen
Und die Ausgabedateien des bin-Verzeichnis aus dem
WPF/Winforms Projekt in uwp kopieren
Schritt 4: exe einbinden
Diese Dateien muss man im Projekt einbinden
Schritt 4: package.appxmanifest anpassen
Dann muss man in der uwpApp die package.appxmanifest
anpassen
Hierzu markiert man in der Solution die datei
package.appxmanifest und öffnet diese mit Code anzeigen
Vorlage der Texte
von Microsoft
Dann muss man einige Zeilen übertragen in die neue
appxmanifest Struktur. Die Anweisungen findet man unter
https://docs.microsoft.com/de-de/windows/uwp/porting/desktop-to-uwp-packaging-dot-net
Eigene Vorlage:
Hier die ScreenShot Kopie meines WPF Projektes..
Man muss also nur die automatisch erzeuge appxmanifest
Datei mit der neuen austauschen..
Hier meine Datei aus einem WPF Projekt
package.appxmanifest
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap rescap
mp">
<Identity Name="Microsoft-Programmierer.d.ScreenShottoClipBoard" Version="1.1.15.0" Publisher="CN=8B3F8A59-EDFE-45E9-AD40-11C00C331433" />
<mp:PhoneIdentity PhoneProductId="832b636e-8b8c-4836-ab55-4ed8b265c421" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>ScreenShot
to ClipBoard</DisplayName>
<PublisherDisplayName>Microsoft-Programmierer.de</PublisherDisplayName>
<Logo>Assets\Store\storelogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
</Dependencies>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="ScreenCaptureToClipboard" Executable="win32\ScreenCapture_to_Clipboard.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements DisplayName="ScreenShot
to Clipboard" Description="ScreenShot
to Clipboard" BackgroundColor="transparent" Square150x150Logo="Assets\Store\SampleAppx.150x150.png" Square44x44Logo="Assets\Store\SampleAppx.44x44.png">
<uap:DefaultTile ShortName="ScreenShot
to Clipboard" Square310x310Logo="Assets\Store\LargeTile.png" Wide310x150Logo="Assets\Store\WideTile.png" Square71x71Logo="Assets\Store\SmallTile.png">
<uap:ShowNameOnTiles>
<uap:ShowOn Tile="square310x310Logo" />
</uap:ShowNameOnTiles>
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\Store\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
</Package>
|
Schritt 5: package.appxmanifest leeren und vorlage
einfügen
Also einfach die appxmanifest leeren und die neue xml
struktur einfügen und anpassen
Schritt 6: Application ID eintragen
Den namen findet man unter dem WPF/Windows 32 Projekt
unter den Application Eigenschaften als Assembly Name, ohne Unterstriche und
ohne Leerzeichen
Assembly Name, ohne Unterstriche und ohne Leerzeichen
Eintragung von WPF Projekt: wpf_Desktop_Arranger
In appxmanifest
<Applications>
<Application Id="wpfDesktopArranger" ..
|
Schritt 7: Exe als Startpunkt eintragen
Die Exe als ausführbaren Punkt eintragen
Dann trägt man die WPF/Windows 32 Exe Datei unter
executable ein.
Also
<Applications>
<Application Id="wpfDesktopArranger" Executable="win32\wpf_Desktop_Arranger.exe" EntryPoint="Windows.FullTrustApplication">
|
Schritt 8: Display Name eintragen
Die weiteren Eintragungen warden entsprechend übernommen
<uap:VisualElements DisplayName="Desktop Arranger" Description="Desktop Arranger"
|
Schritt 9: Store anbinden
Dann schliesst man die Datei und bindet diese an den
Windows Store an
Und verbindet dann ein Projekt
Nach der Übernahme findet man dann die eingetragenen
Werte in der Anzeige
Und es wird zusätzlich eine Datei im uwp Projekt
angelegt, welche die Store-Verbindung enthält
Datei: uwpApp_StoreKey.pfx mit dem Zertifikat
Und wenn man dann die package.appxmanifest datei
überprüft, findet man die Änderung der ID evenfalls als Eintragung wieder
Schritt 10: Icons anpassen
Visuelle Elemente Icons anpassen
Dann öffnet man die package.appxmanifest Datei mit dem
View Designer
Schritt 10a: Fehler in Application wegen Win32
Beim ersten Öffnen erscheint ein Fehler in dem Bereich
Application unter Start Page.
Da es sich um eine Windows 32 Anwendung handelt, welche
auf die exe Datei zugreift, bleibt hier der uwp Fehler bestehen.
Schritt 10 b: Icons anpassen unter Visual Assets
Icons erstellen unter Visual Assets
Schritt 11: Icons mit Asset Generator erstellen
Ich verwende zum Erstellen der Icons immer eine Word
Datei als .htm und übernehme hiervon die image Dateien.
In Source trägt man die Icon Datei ein, wie hier die
image003.png.
Als Format können jpg, pdf, ai, png verwendet werden.
Mit dem Button: Generate werden dann alle notwendigen
Images erstellt.
Danach sind alle notwendigen Image Dateien in dem
Projekt eingefügt
Im Destination Ordner hier Assets\Store
Schritt 12: Ausgabe für Store erstellen
Danach erstellt man eine Ausgabedatei für den App-Store.
Die Funktion findet man unter Menü->Project->Create App Packages
Test: Nach dem automatischen erstellen
Nach dem Create Your Packages muss man das Package mit
dem Certification Test Kit durchlaufen lassen
Hier kommt zurzeit ein Fehler, welcher nicht stimmt,
Fehlermeldung:
Workaround Bridge Windows 32
Hierbei werden scheinbar im Certifiction Kit bei Windows
32 Bridge Apps die Image Grössen nicht
richtig erkannt oder im Image Generator falsch erstellt.
Man kann diesen Fehler einfach übergehen und die Datei dennoch
in den Store hochladen.
Im Windows Store die Datei hochladen
Diese Datei kann man dann unter
Übermittlungen->Übermittlung->Pakete (Link )
Danach erscheint unten ein Ladebalken, und die Datei
wird dann auch gleich analysiert.
Wenn man unter Windows Store als Entwickler für Windows
Bridge Windows 32 freigeschaltet ist, dann erscheint jetzt auch FINAL die Datei
als korrekt