Hi,
ich habe mir einen Bildschirmschoner gebastelt. Prinzipiell bin ich als erstes nach dieser Anleitung vorgegangen: https://csharp-tricks.blogspot.de/2010/07/bildschirmschoner-screensaver-erstellen.html
Der Schoner läuft soweit. Sowohl im Debugmodus aus VS heraus, wie auch das Release wenn ich es per CMD starte.
Habe dann wie in der Anleitung empfohlen die .exe in .scr umbenannt, und weil ich nicht wusste, was alles gebraucht wird, aus dem Ordner herausgeholt und von dort aus per CMD gestartet. Also ohne das die ganzen .pdb, .config, vhost,.. dabei sind. Lief einwandfrei!
Also die .scr in den Windows/System32 Ordner kopiert und tada, wird mir auch in den Bildschirmschonereinstellungen angezeigt.
Wenn ich den dann aber auswähle, erhalte ich folgende Fehlermeldung:> Fehlermeldung:
MMDSScv.scr - This application could not be started.
This application could not be started.
Do you want to view information about this issue?
Ja Nein
Weitergeleitet werde ich dann auf diese für mich als "Entwickler" nichtssagende Seite: https://support.microsoft.com/de-de/help/2715633/shim-errors-for-the-.net-framework-version-and-platform-support
.NET ist natürlich aktiviert, und an den Entwickler habe ich mich auch gewendet (den kenne ich sehr gut, seit seiner Geburt!), aber der ist genauso Ratlos. Über Google habe ich auch schon jemanden gefunden der das Problem hatte, der hat es gelöst, in dem er den Bildschirmschoner in C:\Temp verschoben hat. Bringt aber nix, Windows soll den finden und starten! (https://stackoverflow.com/questions/30642392/shim-noversion-found-error-while-trying-to-run-screensaver-from-preview)
Ich habe auch schon probiert, die zurückgelassenen Dateien ebenfalls umzubenennen (exe => scr) und mit in System32 zu kopieren, hat aber auch nix gebracht.
Was mache ich den hier falsch? Wie kann ich das Problem lösen?
Ach ja, könnte ja evtl. was damit zu tun haben: Buildtarget: Release/AnyCPU.
VG
da_user
Edit:
Ich habe den Bildschirmschoner gerade eben auf einem zweiten Windows10 Gerät "installiert" (der erste PC ist übrigens auch W10). Gleicher Fehler.
Zur Sicherheit habe ich jetzt auch nochmal in den "Windows-Funktionen ein- oder ausschalten" nochmal ganz sicher alles mit .NET aktiviert, der Fehler bleibt bestehen.
Fehlen irgendwelche Infos oder war bis jetzt noch keiner hier, der den Fehler kennen würde?
Ich habe mal versucht, mein Project ein bisschen auf Vordermann zu bringen und angehängt. So kann sich evtl. jeder selbst ein Bild davon machen.
Also ich würde an deiner Stelle einmal das Beispielprojekt umsetzen - und gucken ob das geht. Stichwort "Minimalprojekt".
Weiterhin ist mir aufgefallen, dass in dem Artikel folgendes steht:
Dieses Problem lässt sich beheben, in dem man in den Projekteigenschaften (Rechtsklick auf das Projekt im Projektmappen - Explorer) unter "Anwendung" als Ausgabetyp "Windows-Anwendung" eingestellt.
Das ist bei dir nicht umgestellt.
Weiterhin ist mir aufgefallen, dass in dem Artikel folgendes steht:
Dieses Problem lässt sich beheben, in dem man in den Projekteigenschaften (Rechtsklick auf das Projekt im Projektmappen - Explorer) unter "Anwendung" als Ausgabetyp "Windows-Anwendung" eingestellt.
Das ist bei dir nicht umgestellt.
Oh, das ist mir total entgangen 8o 8o
Umgestellt -> brachte keine Veränderung
Also ich würde an deiner Stelle einmal das Beispielprojekt umsetzen - und gucken ob das geht. Stichwort "Minimalprojekt".
Ich habe es jetzt ehrlich gesagt mal ein bisschen anders gemacht: Am Ende des Artikels verlinkt der Autor auf einen weiteren Blogeintrag mit einen Screensaver den er erstellt hat (http://csharp-tricks.blogspot.de/2010/07/matrix-screensaver.html). Dort habe ich mir den Quellcode heruntergeladen, kompiliert (als Debug) und den selben Vorgang durchgeführt. Auch hier erhalte ich den Shim-Fehler.
Edit: noch ein Test: Auch der bereits Kompilierte Matrixscreensaver, den der Autor auch unter obigen Link anbietet, erzeugt den Shim-Fehler.
Wenn ich Zeit finde, probiere ich es heute Abend mal aus.
Schon mal im Ereignisprotokoll von Windows nachgeschaut, ob sich dort ggf. detailliertere Informationen zum Fehler finden?
Habe es gerade mal ausprobiert, bekomme unter Windows 7 den selben Fehler, wenn das Target Framework .NET Framework 4.6.2 ist.
Stelle ich auf .NET Framework 3.5 um, dann funktioniert es. 🙂
Dafür bekomme ich dann u.A. Probleme mit meinem
Parallel.Foreach
Ich habe jetzt auf .NET 4 umgestellt und damit scheint es zu funktionieren.
Ich stelle übrigens gerade fest, dass laut dem Info-Dialog des VisualStudios nur das .NET Framework 4.6.01586 installiert ist. 8o
Dafür bekomme ich dann u.A. Probleme mit meinem
Parallel.Foreach
Ja, das ist logisch, weil es erst mit dem .NET-Framework 4.0 eingeführt wurde.
Ich stelle übrigens gerade fest, dass laut dem Info-Dialog des VisualStudios nur das .NET Framework 4.6.01586 installiert ist. 8o
Das ist Quatsch, da wird einfach nur die höchste Version angezeigt. Entscheidend ist die Auswahlliste in den Projekteigenschaften bzw. die Auflistung unter "Programme und Funktionen"/"Software" des Betriebssystemes. =)
Was den Fehler angeht: keine Ahnung, warum nur bestimmte Versionen des .NET-Frameworks funktionieren. In der besagten Windows-Features-Ansicht steht was von ".NET Framework 3.5.1", daher habe ich es mit dem Framework ausprobiert. =)
Dafür bekomme ich dann u.A. Probleme mit meinem
Parallel.Foreach
Ja, das ist logisch, weil es erst mit dem .NET-Framework 4.0 eingeführt wurde.
Ja, aber man kann über NuGet die TaskParallelLibrary nachinstallieren. Offensichtlich auch offiziell von MS. Die scheint aber trotzdem nicht ganz so einwandfrei zu funktionieren, wie die in .NET 4.0.
bzw. die Auflistung unter "Programme und Funktionen"/"Software" des Betriebssystemes.
Da finde ich tatsächlich auch keinen Hinweis auf .NET4.6.2, nur auf .NET4.6.1. Nach kurzem googeln weiß ich jetzt auch, dass die 4.6.2 für W10 wohl erst mit dem Anniversary Update kam.
An meinem W10 werden die Upgrades erst später eingespielt, und wann welches W10-Upgrade kam, da habe ich sowieso den Überblick verloren.
Zudem stellt sich mir die Frage, warum das Programm den dann "außerhalb" lief...
Wichtig ist jetzt aber, dass es mit .NET 4 einwandfrei läuft.
Danke fürs Testen und grübeln! 😉
Vllt. hatte dein Projekt einfach das .NET Framework 4.6.1?
Bei mir war das Testprojekt auf 4.6.2.
Ist aber auch egal.