#

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

 

 

 

Mobile

.

soap2day