Zu Hauptinhalt springen

 none
Assembly.LoadFile is not supported in AppX... RRS feed

  • Frage

  • Hallo,

    ich bin nur ein armer Dialysepatient und programmiere während der Dialyse etwas privates um die Zeit zu verbringen.

    Früher z.B. in VB 6 Zeiten konnte ich einigermaßen verstehen wie das zusammenhängt. Das Verständnis ist mir vollständig abhanden gekommen und ich denke das es ein immer größerer unverständlicher Molloch wird...

    Nun wollte ich eine Menu Bar in eine XAML Page einfügen und mir wurde die Fehlermeldung angezeigt die Min Version von Windows sei zu niedrig und man solle das höher setzen. Also von dem Windows 10 Anniversary Update auf die Windows 10 Version 1809.

    Wenn ich das höher setze compiliert es ohne Fehler doch beim XMS Deserialize kommt diese Meldung:

    Exception thrown: 'System.NotSupportedException' in System.Private.CoreLib.dll
    Assembly.LoadFile is not supported in AppX.

    Es passiert hier bei 
     var serializer = new XmlSerializer(typeof(T));
    Der Code ist unten. Kann ich nun eine Menu Bar verwenden und wie? Oder geht das nun nicht...





    using System.Xml.Serialization;
    using System.Xml;
    using System.IO;
    using Windows.Storage;
    
    using P19.AppGlobals.Ex;
    
    
    namespace P19.AppGlobals.Types.Serialization.Xml_Serialization
    {
      class Xml_Serialization
      {
        public static async Task<T> ObjectReadFromXmlFile<T>
                                    (StorageFile storagefile)
        {
          string strFileName = "";
          Stream stream = null;
          T objectFromXmlFile = default(T);
          
          Exception p_ex = null;
    
          try
          {
            strFileName = storagefile.Path;
    
            var serializer = new XmlSerializer(typeof(T));
    
            stream = await storagefile.OpenStreamForReadAsync();
            objectFromXmlFile = (T)serializer.Deserialize(stream);
          }
          catch (Exception ex) { p_ex = ex; }
          finally
          {
            if (stream != null)
            { stream.Dispose();  }     
          }
    
          if (p_ex != null)
          {
            // Offen: 
            // Meldung und ReThrow.
            await Exception_Handle.Exception_MessageDialog_Show1
            ("",
             "FileName: " + strFileName + ".",
             p_ex);
            return objectFromXmlFile;
          }
          else
          { return objectFromXmlFile; }
        }
    
        public static async Task ObjectSaveToXmlFile<T>
                                 (T objectToSave,
                                  StorageFolder file_Folder,
                                  string filename)
        {
          Exception p_ex = null;
    
          try
          {
    
            var serializer = new XmlSerializer(typeof(T));
    
            Windows.Storage.StorageFile file = await file_Folder.CreateFileAsync
                    (filename, Windows.Storage.CreationCollisionOption.ReplaceExisting);
    
            Stream stream = await file.OpenStreamForWriteAsync();
            using (stream)
            {
              serializer.Serialize(stream, objectToSave);
            }
          }
          ///////////////////////////////
          // XmlWriterSettings wss = new XmlWriterSettings();
          // wss.NewLineHandling = NewLineHandling.Entitize;
    
          // XmlSerializer seria = new XmlSerializer(typeof(Test));
          // using (XmlWriter wr = XmlWriter.Create("test.xml", wss))
          // {
          //   seria.Serialize(wr, s);
          //}
          /////////////////////////////////
    
          catch (Exception ex) { p_ex = ex; }
    
          if (p_ex != null)
          {
            // Offen: 
            // Meldung und ReThrow.
            await Exception_Handle.Exception_MessageDialog_Show1
            ("",
             "",
             p_ex);
          }
        }
      }
    }
    


    Und wenn ich z.B. auf YouTube schaue sehe ich das Net Core das neueste und tollste sein soll. Ist UWP = Net Core? Keine Ahnung...

    Ist es möglich die Min Version auf das verlangte 

    Samstag, 12. Oktober 2019 07:29

Antworten

  • Habe eine neue Blank Solution erstellt. Die alten Codedateien über den Windows-Explorer markiert, kopiert und in den Solution Explorer des neuen Projekts eingefügt.

    Das neue Projekt läuft wie das vorherige. Die Target Version ist Windows 10, version 1903. Die Min Version Windows 10, version 1809.

    Der XML Serializer funktioniert und MenuBars lassen sich einfügen.

    • Als Antwort markiert Markus222 Samstag, 12. Oktober 2019 11:34
    Samstag, 12. Oktober 2019 11:33

Alle Antworten

  • Wie setzte ich nun die Min Version von Windows herauf und benutze den XML Serializer weiter? Oder muss die Min Version dazu auf dem Anniversary Update bleiben?

    Ist das Windows Update 10 Update immer automatisch oder muss ich da auf meinem Laptop etwas manuell machen?

    Hat das etwas mit diesem NU-Get zu tun? In dem C# Buch was ich gelesen habe kam Nu-Get nicht vor und ich weiß nicht ob dieses eine Rolle in meinem Projekt spielt und warum.

    Samstag, 12. Oktober 2019 07:55
  • Habe eine neue Blank Solution erstellt. Die alten Codedateien über den Windows-Explorer markiert, kopiert und in den Solution Explorer des neuen Projekts eingefügt.

    Das neue Projekt läuft wie das vorherige. Die Target Version ist Windows 10, version 1903. Die Min Version Windows 10, version 1809.

    Der XML Serializer funktioniert und MenuBars lassen sich einfügen.

    • Als Antwort markiert Markus222 Samstag, 12. Oktober 2019 11:34
    Samstag, 12. Oktober 2019 11:33
  • Dieses neue Applikationsverzeichnis ist auch viel schlanker. Es hat viel weniger Dateien und belegt weniger Speicherplatz.

    Vor dem Kopieren in eine neue Solution:
    68,3 MB
    644 Dateien
    136 Ordner

    In dem neuen Solution Ordner:
    16,3 MB
    276 Dateien
    119 Ordner

    Die Codedateien sind die gleichen. Mir will scheinen das so ein Schritt von Zeit zu Zeit sinnvoll ist.

    Samstag, 12. Oktober 2019 12:50