Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

C-Sharp - EXE -ERROR in Installshield CustomAction wegen abschließendem Backslash aus INSTALLDIR

Mitglied: mayho33

mayho33 (Level 2) - Jetzt verbinden

25.03.2020 um 14:05 Uhr, 178 Aufrufe, 5 Kommentare

Hallo @ All

Ich verwende eine selbst erstellte C#-exe (Konsole) in einer Installshield CustomAction.
Die exe liegt in SupportFiles [SUPPORTDIR] und ich spreche sie in einer Type 34 CA (Path referencing a directory) im Deferred Execution -Modus an.

Der Aufruf schaut so aus:
"[SUPPORTDIR]\meine.exe" "[INSTALLDIR]" -install

exemplarisch ausgeschrieben:
"C:\Users\MeinUser\AppData\Local\Temp\{GUID}\meine.exe" "C:\ProgramFiles\Meine Fonts\" -install

Ich bekomme darauf hin einen Error in meiner Exe. Sie kann den gegebenen Pfad (INSTALLDIR) nicht verarbeiten kann.

Der Fehler liegt am abschließenden "\" (Backslash) im Pfad, den Installshield leider nur so bereit stellt. Die 2 Argumente "[INSTALLDIR]" und -install werden wegen des abschließenden Backslash als ein einziges Argument erkannt:

genau so: C:\ProgramFiles\Meine Fonts\" -install

Den Fehler fange ich meiner MSI derzeit so ab, dass ich die Files in einem SubFolder (Component) ablege und in der CA so aufrufe:
"[SUPPORTDIR]\meine.exe" "[INSTALLDIR]Fonts" -install

Das ist aber nur ein Workarround.

Nun meine Frage:

Wie kann ich das im meiner Exe abfangen sodass die 2 Argumente auch als 2 Argumente erkannt werden trotz des angehängten Backslash? Ich hoffe, dass sich das vor dem Verarbeiten der Args in der MAIN schon abfangen lässt und nicht erst durch umständliches Aufdröseln in der MAIN.

Bin dankbar für jeden Hinweis!

Grüße!

Mayho
Mitglied: SlainteMhath
25.03.2020 um 15:06 Uhr
Moin,

was hintert dich in deiner Anwendung daran zu prüfen ob ein \ am Schluss steht und diesen dann ggfs. zu entfernen bevor du den Pfad verwendest?

lg,
Slainte
Bitte warten ..
Mitglied: mayho33
25.03.2020 um 15:44 Uhr
Zitat von SlainteMhath:

Moin,

was hintert dich in deiner Anwendung daran zu prüfen ob ein \ am Schluss steht und diesen dann ggfs. zu entfernen bevor du den Pfad verwendest?

Hi,

Ja genau der Umstand, dass die Arguments schon verarbeitet worden sind bevor sie in void Main(string[] args) angekommen sind.

Dann würde mir nur noch bleiben die Argumente aufzudröseln, quasi manuell zu trennen und wieder so zusammenzufügen, dass das ganze Sinn ergibt.

Will ich aber nicht. Wie ich oben schon geschrieben habe, suche ich nach einer Möglichkeit die Args vor der Verarbeitung zu korrigieren. Also wenn der String daher kommt und noch als solcher vorhanden ist.

Grüße!
Bitte warten ..
Mitglied: vibrations
25.03.2020, aktualisiert um 15:56 Uhr
Zusätzlichen Backslash hinzufügen sollte reichen, dann ist das Anführungszeichen nicht mehr escaped und die Argumente sollten wieder einzeln übergeben werden.
"[SUPPORTDIR]\meine.exe" "[INSTALLDIR]\" -install
Bitte warten ..
Mitglied: mayho33
25.03.2020 um 16:29 Uhr
Zitat von vibrations:

Zusätzlichen Backslash hinzufügen sollte reichen, dann ist das Anführungszeichen nicht mehr escaped und die Argumente sollten wieder einzeln übergeben werden.
"[SUPPORTDIR]\meine.exe" "[INSTALLDIR]\" -install


Danke @vibrations !

Vereinfacht die Sache zwar ungemein in der CA, aber irgendwie knabbere ich doch noch am Code der Exe. Muss doch möglich sein das Escapen des fehlerhaften Arguments abzufangen ohne die []Args zu bearbeiten...oder nicht?

Ich würde es halt gerne wasserdicht haben. Ich bin nicht der einzige bei uns der MSIs bastelt.

Danke!
Bitte warten ..
Mitglied: vibrations
25.03.2020, aktualisiert um 17:56 Uhr
Zitat von mayho33:
Vereinfacht die Sache zwar ungemein in der CA, aber irgendwie knabbere ich doch noch am Code der Exe. Muss doch möglich sein das Escapen des fehlerhaften Arguments abzufangen ohne die []Args zu bearbeiten...oder nicht?
Ich würde es halt gerne wasserdicht haben. Ich bin nicht der einzige bei uns der MSIs bastelt.
Dann stütze dich eben nicht auf das args[] Array sondern Parse den kompletten Argumente-String als ganzes via Regex mit Submatches, mach ich öfter so. Dann ist es egal ob die Argumente als ein einziges oder als mehrere Elemente vorliegen, dann ist das auch wasserdicht, "wenn" dein Regex es auch ist .
Bitte warten ..
Ähnliche Inhalte
Visual Studio
C Sharp - Runden
gelöst Frage von Cubic83Visual Studio5 Kommentare

Guten Morgen, ich habe ein Problem unter C# bei dem ich den Preis eines Artikels ohne Mehrwertsteuer berechnen muss. ...

C und C++
C sharp basics
Frage von OarmschC und C++1 Kommentar

servus. folgendes Problem kann im Visual Studio mit float keine Gleitkommazahlen darstellen. Erste Dezimalstelle rechts vom punkt wird sofort ...

C und C++
C-sharp Form buggt
gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

C und C++
C-sharp SearchPattern (Regex)
Frage von YanmaiC und C++6 Kommentare

Hallo ihr Administratoren, ich verwende ein AUtocpmpletemenu Plugin. Dort habe ich Snippets, die dann sozusagen completed werden. Beim erstellen ...

Neue Wissensbeiträge
Internet

Aktuelle Netzauslastung in Deutschland durch die Covid-19-Pandemie

Information von Frank vor 7 StundenInternet4 Kommentare

Viele Bürger fragen sich, ob die Telekommunikationsnetze während der Covid-19-Pandemie der verstärkten Internetnutzung durch Home Office, eLearning, Videostreaming und ...

iOS

iOS-Bug unterbindet vollständiges VPN-Tunneling

Information von transocean vor 2 TageniOS

Moin, seit dem letzten Update hat iOS für iPhone und iPad ein Problem mit der Verschlüsselung. Lest selbst. Grüße ...

Sicherheit
Corona Malware über manipulierte Router
Information von sabines vor 2 TagenSicherheit

Heise berichtet über Malware, die in Zusammenhang zum Suchethema Corona steht und über DNS Einstellungen bei D-Link und Linksys ...

Windows 10
Windows 10 Update KB4535996 fehlerhaft
Information von Frank vor 2 TagenWindows 101 Kommentar

Laut Microsoft ist das Update KB4535996 die Ursache für aktuelle Verbindungsprobleme bei Virtual Private Networks (VPNs). Microsoft arbeitet bereits ...

Heiß diskutierte Inhalte
KVM
Best Practice für Fileserver auf Proxmox Cluster
gelöst Frage von maichelmannKVM17 Kommentare

Hallo, derzeit laufen in einer Firma, dessen Netzwerk ich betreue, zwei Windows Server Hyper-V Hosts, jeweils mit einem recht ...

Windows Server
DNS Problem Server 2019 unter Win10 Host
Frage von Ketme10Windows Server15 Kommentare

Guten Tag zusammen. Ich bräuchte mal Hilfe. Ich habe Win 10 und Hyper V laufen. Hier habe ich 4 ...

TK-Netze & Geräte
Netphone APP nimmt kein Kontakt auf
Frage von Finchen961988TK-Netze & Geräte12 Kommentare

Hallo, ich kämfpe mit einem Problem im Bereich Netphone und der Mobil APP. Bei einem Kunden habe ich eine ...

Firewall
PfSense und VLANs mit LAGG
Frage von unique24Firewall12 Kommentare

Hallo, ich habe ein Mikrotik Switch Netzwerk welches über 2 LWL an die pfSense angeschlossen ist pfSense: ixl2 = ...