AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Temporäre Dateien Unterordner "2"

Temporäre Dateien Unterordner "2"

Ein Thema von Flips · begonnen am 13. Mär 2012 · letzter Beitrag vom 14. Mär 2012
Antwort Antwort
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

Temporäre Dateien Unterordner "2"

  Alt 13. Mär 2012, 15:06
Betriebssystem: Win XP
Hi,

im Rahmen eines Projektes baue ich mit Hilfe von WiX einen Installer.

Während des Setup werden Dateien in einen Unterordner XYZ des Temp-Ordners des aktuellen Benutzers kopiert/entpackt (C:\Benutzer und Einstellungen\...\Lokale Einstellungen\Temp\XYZ)
Das hat auf meiner lokalen Maschine (XP Prof SP3) auch super geklappt. Jetzt führe ich das Setup auf einer VM mit Windows Server 2003 aus und ich finde die Dateien beziehungsweise den Ordner XYZ nicht im Temp, sondern in Temp\2\.
Also insgesamt in C:\Benutzer und Einstellungen\...\Lokale Einstellungen\Temp\2\XYZ

Das will ich aber nicht, der Ordner soll im Temp-Ordner erstellt werden. Was hat es mit diesem Unterordner "2" auf sich? Denn da liegt nicht nur mein Zeug, sondern auch eine jusched.log, was ich dem Java-Updater zuordne.

Hat jemand von euch damit mal Erfahrungen gemacht?
Vielen Dank!
Philipp F.
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#2

AW: Temporäre Dateien Unterordner "2"

  Alt 13. Mär 2012, 15:11
Bist du über Remotedesktop mit dem Server verbunden, oder sitzt du "vor der Konsole"?
Die Unterordner mit den Zahlen sind soviel ich weiß die Sitzungen im Terminalserver. Du kannst dich ja bei einem Terminalserver mehrmals als ein und derselbe Benutzer anmelden. Die hätten dann ja immer das gleiche Temp-Folder. So wird das aber umgangen und jede Sitzung hat ihr eigenes Temp-Verzeichnis.
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#3

AW: Temporäre Dateien Unterordner "2"

  Alt 13. Mär 2012, 15:16
Jap bin per Remote verbunden.

Super, das wusste ich gar nicht.
Gibt es denn eine Möglichkeit, das in meinem Programm zu erkennen? Geht konkret um C#.
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.962 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Temporäre Dateien Unterordner "2"

  Alt 13. Mär 2012, 15:35
%windir%\system32\tsconfig.msc

> Temporäre Ordner beim Beenden löschen (Beenden der Sitzung)
> Temporäre Ordner pro Sitzung verwenden (das sind die nummerierten Unterverzeichnisse)

%TEMP% und die ganzen APIs, welche auf den Temp-Ordner verweisen, zeigen auf das Unterverzeichnis der Sitzung, in welcher sie laufen.
(gib einfach mal %TEMP% als Pfad in den Explorer ein, oder in das Programme durchsuchen des Startmenü)

Zitat:
Du kannst dich ja bei einem Terminalserver mehrmals als ein und derselbe Benutzer anmelden
Nur wenn es erlaubt/aktiviert ist. (standardmäßig nicht)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (13. Mär 2012 um 15:41 Uhr)
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#5

AW: Temporäre Dateien Unterordner "2"

  Alt 13. Mär 2012, 16:02
Zitat:
%TEMP% und die ganzen APIs, welche auf den Temp-Ordner verweisen, zeigen auf das Unterverzeichnis der Sitzung, in welcher sie laufen.
Code:
Path.GetTempPath()
tuts leider nicht, der ignoriert den Unterordner.

Aber %TEMP% tuts, zumindest in der Pfadangabe des Explorer. Mal schauen, ob C# das ganze auch nimmt.
Philipp F.
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#6

AW: Temporäre Dateien Unterordner "2"

  Alt 14. Mär 2012, 10:43
Ok C# tuts nicht...

Es ist echt zum heulen, zur Zeit scheint es mir so zu laufen:

Ich bin per RDP verbunden, führe da per Doppelklick die MSI aus (also über das Konto des angemeldeten Benutzers = Administrator).
Der Installer entpackt alles in den Unterordner des Temp-Ordners, der als Namen die Sitzungs-ID hat.
Dann startet der Installer einen Bootstrapper, der diese Dateien sucht. Scheinbar wird dieser vom Installer mit einem anderen Konto gestartet, denn wenn ich in diesem Bootstrapper den Temp-Pfad ausgeben lasse, dann komme ich in den Temp-Ordner und NICHT in den Unterordner. Dementsprechend findet der Bootstrapper die Dateien nicht... Hat jemand ne Lösung parat?

[Edit]
Das Problem hat schonmal jemand gehabt: http://stackoverflow.com/questions/6...ion-tempfolder

Nur ist seine Lösung nicht sehr zufriedenstellend.

[Edit2]
Langsam wirds komisch, laut Task-Manager wird der Bootstrapper unter der selben Benutzer-ID gestartet wie der Installer, müsste also den selben temporären Ordner zugewiesen bekommen. Scheinbar liegt es an der C#-Methode.

[Edit3]
Code:
MessageBox.Show("USER:" + Environment.GetEnvironmentVariable("TEMP",EnvironmentVariableTarget.User));
MessageBox.Show("Process:" + Environment.GetEnvironmentVariable("TEMP", EnvironmentVariableTarget.Process));
MessageBox.Show("Machine:" + Environment.GetEnvironmentVariable("TEMP", EnvironmentVariableTarget.Machine));
Alle drei zeigen nicht auf den Unterordner...ich verstehs nicht!
Philipp F.

Geändert von Flips (14. Mär 2012 um 11:57 Uhr)
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#7

AW: Temporäre Dateien Unterordner "2"

  Alt 14. Mär 2012, 12:07
Bei mir:
Code:
USER:C:\Users\<username>\AppData\Local\Temp
Process:C:\Users\<username>\AppData\Local\Temp\2
Machine:C:\Windows\TEMP
alternativ könnte man halt noch
Code:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Temp"
nehmen...
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#8

AW: Temporäre Dateien Unterordner "2"

  Alt 14. Mär 2012, 13:56
Bei mir:
Code:
USER:C:\Users\<username>\AppData\Local\Temp
Process:C:\Users\<username>\AppData\Local\Temp\2
Machine:C:\Windows\TEMP
Ja, das habe ich auch wenn ich den Bootstrapper manuell ausführe.
Wenn das Setup ihn startet, ergeben sich die vorher geposteten Pfade.
Philipp F.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf