.NET GUI

.NET Community rund um alle Graphical User Interface (GUI) Themen.
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

XBAP Startverzeichnis

Letzter Beitrag 05-15-2008 16:34 von Konstantin Gross. 7 Antworten.
Seite 1 von 1 (8 Treffer)
Beiträge sortieren: Zurück Weiter
  • 05-14-2008 14:34

    XBAP Startverzeichnis

    Hallo,

    ich hoffe ihr könnt mir behilflich sein und zwar versuche ich sei langer Zeit rauszufinden wie ich den wohl das Startverzeichnis einer XBAP Anwendung rausfinden kann, die bekannten Wege aus alter Windows Forms bzw. WPF mittels Environment.CurrentDirectory den Ordner rauszufinden hilft nicht, da ich immer beim Client den System32 Ordner angezeigt bekomme. Entweder ich stehe gerade total auf dem Schlauch oder ich kriegs nicht gebacken, das ich neben meinem XBAP und EXE noch einen Ordner sagen wir Resources habe der verschiedene Icons beeinhalten soll, wenn ich ein klares Verzeichnis angebe, dann funktioniert das, aber es sollte dynamisch ablaufen, ohne das ich im Code den genauen Pfad zum Rechner/Server reinzuschreiben brauche. Hoffentlich kann mir einer von euch einen Denkanstoß geben, ich finds langsam ätzend für jedes Icon den Pfad angeben zu müssen.

    Danke
    Abgelegt unter: ,
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 05-14-2008 14:53 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 343
    • Punkte 5.249
    • ForumsAdministrator

    AW: XBAP Startverzeichnis

    Hallo,

    grundsätzlich solltest du die Icons etc. eher als Ressourcen in deine Anwendung integrieren. Wäre der bessere und sauberere Weg.

    Andernfalls findest du die XBAP-Anwendung im ClickOnce Application Cache, der sich hier befindet:

    %USERPROFILE%\Lokale Einstellungen\Apps\2.0

    Wobei 2.0 für die CLR-Version steht.
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 05-14-2008 15:45 Antwort zu

    AW: XBAP Startverzeichnis

    Wäre das den nicht etwas übertrieben, wenn ich sagen wir mal 50 Icons per Hand in die Page.Resources eintrage? Ich habe eher daran gedacht, das ich einfach nur folgendes angebe. Zur Zeit funktionierts noch so:
    <MenuItem Header="Alle Plugins entfernen" Name="all">
    	<MenuItem.Icon>
    		<Image Source="V:\Public\Icons\delete_16x16.gif"/>
    	</MenuItem.Icon>
    </MenuItem>
    Ich möchte das aber irgendwie so hinbekommen:
    <MenuItem Header="Alle Plugins entfernen" Name="all">
    	<MenuItem.Icon>
    		<Image Source="Resources\delete_16x16.gif"/>
    	</MenuItem.Icon>
    </MenuItem>
    Und da kriege ich was von C:\windows\system32\Resources\delete_16x16.gif raus. Ich möchte mich halt immer auf den Server beziehen egal wo die Anwendung liegt.

    http://server01/Application.exe
    http://server01/Application.xbap
    http://server01/Resources/delete_16x16.gif

    Wenn die Anwendung später auf einen Server02 kommt, soll ihn das nicht interessieren, da er weiß das die Grafiken unter Server02/Resources/... liegen. Mir bringt es leider also nichts, wenn ich den ClickOnce Cache abfrage.
    • Beitragspunkte: 35
    • IP-Adresse ist Registriert
  • 05-15-2008 6:24 Antwort zu

    • VolkerD
    • Top 50 Mitwirkender
    • Registriert am 04-23-2008
    • Mannheim
    • Beiträge 6
    • Punkte 60

    AW: XBAP Startverzeichnis

    Hallo,

    Hilft dir vielleicht  "Environment.GetFolderPath" mit der entsprechenden Enumeration?

    Beispielsweise

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

    für den Zugriff auf "C:\Users\Nutzer\AppData" bei Vista bzw. dem entsprechenden Ordner unter WinXP

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
  • 05-15-2008 9:41 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 343
    • Punkte 5.249
    • ForumsAdministrator

    AW: XBAP Startverzeichnis

    Nein, wieso?

    Ressourcen in dem Fall hatte nichts den Ressource-Definitionen zu tun.

    Vermutlich hast du in deiner Solution ein Unterverzeichnis Resources und darunter deine Images, korrekt? Die Images sind vermutlich (siehe Eigenschaften) auf

    Build Action = Resource
    Copy to Output Directory = Do not copy

    eingestellt. Wenn nicht, dann einfach so einstellen. Das reicht, um auf die Grafiken so zuzugreifen:

    <MenuItem Header="Alle Plugins entfernen" Name="all">
    	<MenuItem.Icon>
    		<Image Source="Resources/delete_16x16.gif"/>
    	</MenuItem.Icon>
    </MenuItem>

    Absolute Pfade solltest du auf jeden Fall vermeiden.

    Noch eine Frage: Funktioniert es lokal bei dir (also wenn du deine Anwendung auf den lokalen Webserver verteilst) und am Server nicht, oder generell nicht?

    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 05-15-2008 13:45 Antwort zu

    AW: XBAP Startverzeichnis

    @Volker:
    Nein das hilft mir leider nicht weiter.

    @Norbert:
    Ah danke, das mit den Resourcen klappt schonmal, habe nicht auf die Eigenschaften geachtet. Ich habe dennoch das Problem, das ich das Startverzeichnis der XBAP rausfinden muss und das verständlicher zu machen mal ein Beispiel.

    Der User ruft auf dem Server die Applikation "Test.xbap" auf, diese Anwendung liest jetzt auf dem Server alle Dateien eines Verzeichnises aus.

    ->Text.exe
    ->Text.xbap
    -->Ordner
    --->Datei1.dat
    --->Datei2.dat
    --->Datei3.dat
    --->Datei4.dat

    Das Problem ist das ich nicht weiß wie ich jetzt an den Ordner rankomme ohne absolute Pfade zu setzen, da die XBAP Anwendung ja bereits im lokalen Cache beim User läuft.
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 05-15-2008 15:22 Antwort zu

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 343
    • Punkte 5.249
    • ForumsAdministrator

    AW: XBAP Startverzeichnis

    Answer
    Wenn das ganze per ClickOnce deployed wird, dann sieht es ein wenig anders aus, da die Datendateien in ein eigenes Verzeichnis kopiert werden, also nicht direkt bei der Anwendung liegen. Um dieses Verzeichnis wieder zu finden, musst du eine Referenz zur Assembly System.Deployment hinzufügen. Folgender Aufruf würde dir dann deine Dateien unter einem Ordner Test auslesen:

    DirectoryInfo di = new DirectoryInfo(System.IO.Path.Combine(ApplicationDeployment.CurrentDeployment.DataDirectory,"Test"));
    if (di != null)
    { 
        FileInfo[ fis = di.GetFiles();
        // Dateien weiterverarbeiten
    }
    Full-Trust nicht vergessen :)
    • Beitragspunkte: 20
    • IP-Adresse ist Registriert
  • 05-15-2008 16:34 Antwort zu

    AW: XBAP Startverzeichnis

    Norbert du bist mein Held Big Smile Funktioniert anstandslos. Dankeschön.
    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (8 Treffer)
Powered by Community Server (Commercial Edition)    Hosting powered by 69° media solutions