Manifest DPI-Werte auskommentiert und Installation nach Veröffentlichung geht nicht

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von simongoebel94.

    Manifest DPI-Werte auskommentiert und Installation nach Veröffentlichung geht nicht

    Hallo,

    ​ich habe ein kleines Problem. :( Und zwar habe ich im app.manifest folgende Stelle auskommentiert:

    Quellcode

    1. ​<application xmlns="urn:schemas-microsoft-com:asm.v3">
    2. <windowsSettings>
    3. <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    4. </windowsSettings>
    5. </application>


    ...um den Text in meiner Forms-Anwendung scharf darzustellen.

    ​Des Weiteren habe ich in den App.config die Eigenschaft "EnableWindowsFormsHighDpiAutoResizing" auf true gestellt.

    ​Beim Ausführen funktioniert auch alles perfekt und der Text und alle anderen Elemente werden schön scharf dargestellt. Kein verwaschener/verschwommener Text oder so. Wenn ich mein Programm allerdings veröffentliche, schlägt die Installation fehl. Als Fehlermeldung bekomme ich: "Die Anwendung ist falsch formatiert." ​Wenn ich den zuvor auskommentierten Code wieder entferne und das Programm dann nach der Veröffentlichung installiere, funktioniert alles, allerdings wird alles unscharf dargestellt.

    ​Was kann ich tun, damit das Programm trotz verändertem Manifest installiert wird? ?( ?(

    Vielen Dank schon mal! :)
    Hatten wir neulich erst: Komplette Form ist unscharf
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Genau so habe ich das auch gemacht und wenn ich mein Projekt debugge, funktioniert auch alles bestens. Wenn ich mein Projekt allerdings veröffentliche und versuche das Programm zu installieren, bekomme ich eine Fehlermeldung dass die Anwendung falsch formatiert sei. Wenn ich die Details dazu öffne, öffnet sich eine Textdatei in der steht, dass das manifest ungültig sei oder nicht geöffnet werden konnte. :/
    Du schreibst oben, du hättest was auskommentiert. @BlackSpider hat da glaub nix auskommentiert gehabt.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hi

    @simongoebel94 hat schon Recht. In der app.manifest sind die 5 Zeilen Code die er oben geschrieben hat schon vorhanden allerdings auskommentiert.

    Was den Fehler betrifft den kann ich reproduzieren ich verstehe allerdings nicht warum der Fehler auftritt.


    Hier mal das Log-File

    Quellcode

    1. INFO ZUR PLATTFORMVERSION
    2. Windows : 10.0.14393.0 (Win32NT)
    3. Common Language Runtime : 4.0.30319.42000
    4. System.Deployment.dll : 4.6.1586.0 built by: NETFXREL2
    5. clr.dll : 4.6.1586.0 built by: NETFXREL2
    6. dfdll.dll : 4.6.1586.0 built by: NETFXREL2
    7. dfshim.dll : 10.0.14393.0 (rs1_release.160715-1616)
    8. QUELLEN
    9. Bereitstellungs-URL : file:///C:/Users/micha/Documents/Visual Studio 2015/Projects/Reformabit/Reformabit/publish/Reformabit.application
    10. IDENTITÄTEN
    11. Bereitstellungsidentität : Reformabit.application, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9dcb970bf31d312a, processorArchitecture=msil
    12. ZUSAMMENFASSUNG FÜR ANWENDUNG
    13. * Installierbare Anwendung.
    14. FEHLERZUSAMMENFASSUNG
    15. Es folgt eine Zusammenfassung der Fehler. Details zu diesen Fehlern werden später im Protokoll aufgelistet.
    16. * Die Aktivierung von C:\Users\micha\Documents\Visual Studio 2015\Projects\Reformabit\Reformabit\publish\Reformabit.application führte zu einer Ausnahme. Folgende Fehlermeldungen wurden entdeckt:
    17. + Ausnahme beim Lesen des Manifests aus 'file:///C:/Users/micha/Documents/Visual Studio 2015/Projects/Reformabit/Reformabit/publish/Application Files/Reformabit_1_0_0_1/Reformabit.exe.manifest': Das Manifest ist möglicherweise ungültig, oder die Datei konnte nicht geöffnet werden.
    18. + Das Analysieren und die DOM-Erstellung des Manifestes führten zu einem Fehler. Folgende Fehler wurden beim Analysieren protokolliert:
    19. -HRESULT: 0x8007001f
    20. Anfangszeile: 0
    21. Anfangsspalte: 0
    22. Hostdatei:
    23. + Ein an das System angeschlossenes Gerät funktioniert nicht. (Ausnahme von HRESULT: 0x8007001F)
    24. FEHLERZUSAMMENFASSUNG FÜR DIE SPEICHERTRANSAKTION DER KOMPONENTE
    25. Es wurde kein Transaktionsfehler festgestellt.
    26. WARNUNGEN
    27. Während dieses Vorgangs gab es keine Warnungen.
    28. FORTSCHRITTSSTATUS DES VORGANGS
    29. * [13.02.2017 07:30:01] : Die Aktivierung von C:\Users\micha\Documents\Visual Studio 2015\Projects\Reformabit\Reformabit\publish\Reformabit.application wurde gestartet.
    30. * [13.02.2017 07:30:01] : Das Verarbeiten des Bereitstellungsmanifestes wurde erfolgreich abgeschlossen.
    31. * [13.02.2017 07:30:01] : Die Installation der Anwendung wurde gestartet.
    32. FEHLERDETAILS
    33. Folgende Fehler wurden bei diesem Vorgang entdeckt.
    34. * [13.02.2017 07:30:01] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
    35. - Ausnahme beim Lesen des Manifests aus 'file:///C:/Users/micha/Documents/Visual Studio 2015/Projects/Reformabit/Reformabit/publish/Application Files/Reformabit_1_0_0_1/Reformabit.exe.manifest': Das Manifest ist möglicherweise ungültig, oder die Datei konnte nicht geöffnet werden.
    36. - Quelle: System.Deployment
    37. - Stapelüberwachung:
    38. bei System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
    39. bei System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
    40. bei System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    41. bei System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    42. bei System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    43. bei System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    44. --- Interne Ausnahme ---
    45. System.Deployment.Application.InvalidDeploymentException (ManifestParse)
    46. - Das Analysieren und die DOM-Erstellung des Manifestes führten zu einem Fehler. Folgende Fehler wurden beim Analysieren protokolliert:
    47. -HRESULT: 0x8007001f
    48. Anfangszeile: 0
    49. Anfangsspalte: 0
    50. Hostdatei:
    51. - Quelle: System.Deployment
    52. - Stapelüberwachung:
    53. bei System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)
    54. bei System.Deployment.Application.Manifest.AssemblyManifest..ctor(FileStream fileStream)
    55. bei System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
    56. --- Interne Ausnahme ---
    57. System.Runtime.InteropServices.COMException
    58. - Ein an das System angeschlossenes Gerät funktioniert nicht. (Ausnahme von HRESULT: 0x8007001F)
    59. - Quelle: System.Deployment
    60. - Stapelüberwachung:
    61. bei System.Deployment.Internal.Isolation.IsolationInterop.CreateCMSFromXml(Byte[] buffer, UInt32 bufferSize, IManifestParseErrorCallback Callback, Guid& riid)
    62. bei System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)
    63. DETAILS ZUR SPEICHERTRANSAKTION DER KOMPONENTE
    64. Es sind keine Transaktionsinformationen verfügbar.
    -... .-.. .- -.-. -.- ... .--. .. -.. . .-.
    The Leading Horse is white - the second horse is red - the third one is a black - the last one is a green.
    Ich habe auch noch nicht herausfinden können was da los ist. Vielleicht weiss es jemand anderes hier. Einfach mal ein wenig abwarten.
    -... .-.. .- -.-. -.- ... .--. .. -.. . .-.
    The Leading Horse is white - the second horse is red - the third one is a black - the last one is a green.
    tl;dr: @simongoebel94 @BlackSpider
    Habt ihr schon versucht den AutoScaleMode der Form auf DPI einzustellen?
    Schau(t) mal hier
    Würde halt davon abraten diese Einstellung zu deaktivieren, letzten Endes gibt es viele Anwender mit einer Sehschwäche...

    Hoffe das hilft euch weiter,
    Drahuverar
    Option Strict On!
    Hi @Drahuverar,

    das erklärt aber nicht warum der Fehler auftritt den wir bekommen.
    -... .-.. .- -.-. -.- ... .--. .. -.. . .-.
    The Leading Horse is white - the second horse is red - the third one is a black - the last one is a green.
    Schon klar, geht darum den Fehler zu vermeiden. (Falls es damit geht, ich hab kein Windows 10 zum testen)
    Wenn man Zeit hat der Sache auf den Grund zu gehen findet man sicherlich die Ursache des Problems, mein Ansatz soll als Lösung dienen bis man dazu kommt.
    Option Strict On!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Drahuverar“ ()

    Also das hat auch nicht funktioniert, aber da das Programm nur für mich und evtl. Freunde ist, habe ich das jetzt wie folgt gelöst:

    ​Ich habe ein Setup mit Inno Setup erstellt damit mein Programm in dem Ordner Programme unter dem Laufwerk C installiert wird. Somit habe ich auch eine .exe-Datei meines Programms und kann dort mit Rechtsklick unter "Eigenschaften" unter dem Reiter "Kompatibilität" den Punkt "Skalierung bei hohem DPI-Wert deaktivieren​" aktiviert. Schon passt alles und das Programm wird scharf dargestellt. :)