2009-05-03 4 views
7

Ich habe eine App geändert, um die UAC in VISTA zu berücksichtigen. So, jetzt wird der .mdb (JET oder Access-Datei) in ProgramData\MyApp\ befindetWarum Virtualisierung auf ProgramData-Ordner in MS Vista?

Ich erkennen, dass, wenn mein app liest die Datenbank zum ersten Mal wird es von diesem Ort zu tun ... aber wenn mein app Schreiben in die Datenbank ... Die Datei wird virtualisiert und geht auf Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp. Von diesem Moment an gehe meine App immer zum virtualisierten Speicherort auf der Festplatte.

Meine App funktioniert, aber wenn ich so weitermache, würde die Datenbank pro Benutzer sein, und wir müssen wirklich die Datenbank mit allen Benutzern auf dem PC teilen.

Ich dachte, dass das Schreiben in ProgramData-Ordner den Virtualisierungsmechanismus nicht auslösen würde.

Was ich vermisse?

Ich muss die Berechtigungen für MyApp-Ordner unter ProgramData festlegen?

Wie kann ich das bei der Installationszeit tun?

Danke Leute ...

Weitere Informationen: Entwickelt mit VS2003 VB.NET das VS-Setup-Projekt verwenden.

+1

"Vista" ist kein Akronym, daher sollte nur der erste Buchstabe groß geschrieben werden. –

Antwort

2

Wahrscheinlich müssen Sie während der Installation Schreibberechtigungen für alle Benutzer festlegen.

Um zu testen, löschen Sie den virtualisierten Ordner, legen Sie die Berechtigungen für den Ordner ProgramData \ MyApp manuell und sehen, ob das funktioniert.

Um das pragmatisch während der Installation zu tun, hängt das wirklich davon ab, welche Technologie Sie verwenden.

+0

Yeap, es war nur die Schreibberechtigung. Die andere knifflige Sache ist, dass das Ausführen eines MSI von VS 2003 Setup Project und das Verwenden der benutzerdefinierten Aktion (um die Ordnerberechtigungen festzulegen) zu Fehlern in Vista führt, da CustomActions als allgemeiner Benutzer ausgeführt wird, der als der erhöhte Benutzer installiert ist, der das Setup ausführt. Sie müssen die MSI-Datei mit ORCA bearbeiten, um das Flag von "No Impersonate" auf "true" zu setzen. Um dies zu tun, sollten Sie in der Tabelle Benutzerdefinierte Aktion in der Spalte Typ der Zeile "install" 3073 als Wert festlegen. – Romias

+1

Ah, Setup-Projekte von einer Pre-Vista-Version von VS. Pfui. Wenn du genug Ahnung hast, Orca zu benutzen, dann bist du wahrscheinlich bereit, WiX zu verwenden, was dein Leben viel einfacher macht :) – saschabeaumont

1

Ich hatte auch hier Probleme, es scheint Vista ist einmal beschließt, die Datei zu virtualisieren, der einzige Weg, um es zu stoppen ist die virtuelle Datei zu löschen. Bei der nächsten Verwendung wird der Ordner ProgramData verwendet.