Benutzer mit den meisten Antworten
InvalidDeploymentException bei My-Befehlen

Frage
-
Hallo zusammen.
Ich habe ein Problem mit einer meiner Anwendungen.
Komischerweise tritt seit kurzem ein Fehler bei jedem My-Befehl auf, den ich aufrufe.
Die Meldung ist "InvalidDeploymentException ist aufgetreten" und "Die Anwendungsidentität ist nicht festgelegt.",
obwohl ich alles signiert habe.Ausserdem wird immer derselbe Code ausgeführt, selbst wenn ich etwas ändere und der Fehler tritt komischerweise nur beim
Debuggen und nicht beim Erstellen auf.Vielen Dank im Voraus für eure Antworten,
Firedroide
Antworten
-
Ich habe den Fehler nun selbst gefunden:
Aus einem unbekannten Grund konnte VB die Anwendung in Bin/Debug nicht mehr überschreiben.
Nachdem ich sie nun selbst gelöscht habe, funktioniert der Debugger wieder.Vielen vielen Dank für die hilfreichen Antworten!
Firedroide
- Als Antwort markiert Firedroide Donnerstag, 8. Juli 2010 11:22
-
Hallo,
Also, zum Beispiel hier:
Dim mods As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData)))Der Fehler tritt also eigentlich immer auf, wenn ich versuche, irgendeine Datei zu lesen, zu schreiben oder zu löschen.
hast Du eventuell an den Optionen zum Debuggen geschraubt? Es gibt unter Extras => Optionen > Debuggen eine Option, die nennt sich [X] Nur meinen Code aktivieren (nur verwaltet). Diese musst Du aktivieren, ansonsten hält der Debugger auch bei Exceptions, die nicht in Deinem Code sondern in der Basis-Bibliothek geworfen werden.
Zur Frage wegen ClickOnce:
Ich nutze nur die Funktion "Debuggen" und "Erstellen" in VB2010.
Ich packe dann die Anwendung in meinen eigenen Installer.Aber wie erstellt man das ClickOnce Deployment neu?
Brauchst Du in dem Fall nicht, das ist nicht ursächlich für Dein Problem.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Firedroide Donnerstag, 8. Juli 2010 11:22
Alle Antworten
-
Hallo,
Komischerweise tritt seit kurzem ein Fehler bei jedem My-Befehl auf, den ich aufrufe.
Die Meldung ist "InvalidDeploymentException ist aufgetreten" und "Die Anwendungsidentität ist nicht festgelegt.",
obwohl ich alles signiert habe.Kannst Du Beispiele liefern, bei welchen My-Befehlen der Fehler auftritt?
Ausserdem wird immer derselbe Code ausgeführt, selbst wenn ich etwas ändere und der Fehler tritt komischerweise nur beim
Debuggen und nicht beim Erstellen auf.In der Dokumentation zur InvalidDeploymentException, kann man lesen, dass dieser Fehler auftritt, wenn die Anwendungsmanifeste nicht gelesen werden konnten, zum Beispiel weil sie ungültige Daten enthalten. Veröffentlichst Du Deine Anwendung mit ClickOnce? Verschwindet das Problem, wenn Du, wie in der Dokumentation angegeben, das ClickOnce Deployment neu erstellst?
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Also, zum Beispiel hier:
UserSettings = FileReader.ReadFile(My.Computer.FileSystem.GetParentPath(AppData) & "\UserSettings.txt", The_English_Vocabulary.FileReader.ReadFileEnum.List)FileReader ist eine von mir erstellte Class, bei der ebenfalls ein Fehler auftritt, bei dieser Zeile:
Dim FileText As String = My.Computer.FileSystem.ReadAllText(FileName, System.Text.Encoding.Default)Oder zum Beispiel hier:
Dim mods As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData)))Oder hier:
My.Computer.FileSystem.DeleteDirectory(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData, FileIO.DeleteDirectoryOption.DeleteAllContents)Der Fehler tritt also eigentlich immer auf, wenn ich versuche, irgendeine Datei zu lesen, zu schreiben oder zu löschen.
Zur Frage wegen ClickOnce:
Ich nutze nur die Funktion "Debuggen" und "Erstellen" in VB2010.
Ich packe dann die Anwendung in meinen eigenen Installer.Aber wie erstellt man das ClickOnce Deployment neu?
Entschuldigung, in diesen Bereichen habe ich keine Ahnung :-)Firedroide
-
Hallo Firedroid,
Manuell, kann dieser Benutzer eine Datei(Ordner) schreiben oder löschen in den angegeben Ordner/Unterordner?
Siehe auch: Troubleshooting Exceptions: System.Deployment.Application.InvalidDeploymentException (hat Dir Thorsten schon geschrieben) und folge auch ClickOnce Security and Deployment
Grüße,
Robert
-
Hallo,
Also, zum Beispiel hier:
Dim mods As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.GetParentPath _
(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData)))Der Fehler tritt also eigentlich immer auf, wenn ich versuche, irgendeine Datei zu lesen, zu schreiben oder zu löschen.
hast Du eventuell an den Optionen zum Debuggen geschraubt? Es gibt unter Extras => Optionen > Debuggen eine Option, die nennt sich [X] Nur meinen Code aktivieren (nur verwaltet). Diese musst Du aktivieren, ansonsten hält der Debugger auch bei Exceptions, die nicht in Deinem Code sondern in der Basis-Bibliothek geworfen werden.
Zur Frage wegen ClickOnce:
Ich nutze nur die Funktion "Debuggen" und "Erstellen" in VB2010.
Ich packe dann die Anwendung in meinen eigenen Installer.Aber wie erstellt man das ClickOnce Deployment neu?
Brauchst Du in dem Fall nicht, das ist nicht ursächlich für Dein Problem.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Firedroide Donnerstag, 8. Juli 2010 11:22
-
Ok, ich habe nun die Option geändert, und siehe da:
Es gibt keine Fehler mehr aus.Allerdings bleibt ein Problem:
Ich habe gerade etwas am Code geändert (Button hinzugefügt + MsgBox bei Form1_Load), aber es werden weder der Button noch die MsgBox angezeigt, da der Debugger wahrscheinlich gar nicht meinen aktuellen Code benutzt.Wie kann ich den Debugger wieder dazu bringen, den aktuellen Code zu benutzen?
Danke für alle vorherigen Antworten und die, die noch kommen.
Firedroide
-
Hallo,
Ich habe gerade etwas am Code geändert (Button hinzugefügt + MsgBox bei Form1_Load), aber es werden weder der Button noch die MsgBox angezeigt, da der Debugger wahrscheinlich gar nicht meinen aktuellen Code benutzt.
Wie kann ich den Debugger wieder dazu bringen, den aktuellen Code zu benutzen?
Hast Du mal versucht das Projekt/die Projektmappe neu zu erstellen? Ggf. vorher mit "Projektmappe bereinigen" für einen sauberen Stand sorgen. Beides findest Du im Menü unter "Erstellen".
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Also, ich habe nun die Projektmappe bereinigt, hat aber nichts gebracht.
Wenn ich das Programm mit VB2010 debugge, erscheint immer eine veraltete Version.
Wenn ich aber die .exe in Bin/Release ausführe, funktioniert alles und ist auf dem neusten Stand.Irgendetwas stimmt einfach mit dem Debugger / VB2010 nicht, das Programm würde schon funktionieren...
Firedroide
-
Hallo,
Wenn ich das Programm mit VB2010 debugge, erscheint immer eine veraltete Version.
Wenn ich aber die .exe in Bin/Release ausführe, funktioniert alles und ist auf dem neusten Stand.Irgendetwas stimmt einfach mit dem Debugger / VB2010 nicht, das Programm würde schon funktionieren...
entweder bist Du im falschen bin-Verzeichnis oder Du startest das falsche Projekt, sofern mehrere in einer Projektmappe sind. Um was für einen Projekttyp handelt es sich?
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de -
Ich habe den Fehler nun selbst gefunden:
Aus einem unbekannten Grund konnte VB die Anwendung in Bin/Debug nicht mehr überschreiben.
Nachdem ich sie nun selbst gelöscht habe, funktioniert der Debugger wieder.Vielen vielen Dank für die hilfreichen Antworten!
Firedroide
- Als Antwort markiert Firedroide Donnerstag, 8. Juli 2010 11:22