2009-08-17 5 views
0

Seit Jahren war Windows XP (32 Bit) mein Entwicklungsdesktop (persönliche Projekte). Ich entwickle viele Hobbyprojekte und verteile sie als Open Source und habe mir nie Sorgen gemacht, ob ich es in Vista überprüfen könnte (ich habe Vista nur für eine Woche benutzt). Aber keiner meiner Nutzer hat sich viel über meine Apps in Vista beschwert.Für die Entwicklung zu Windows 7 (64) verschoben. Was ist mit den UAC-Einstellungen? [Windows-Anwendung]

Jetzt bin ich zu Windows 7 64 Bit OS (RTM) umgezogen. Ich benutze Visual Studio 2008. Ich entwickle eine Anwendung, die ich verkaufen möchte.

Ich benutze SQLite DB für die Datenspeicherung und alles lief gut, bis ich mich entschied, meine erste Version in meinem Laptop zu installieren. Boom! App hat nicht wie erwartet funktioniert. Ich fand, dass obwohl ich ein Admin-Benutzer war, die App nicht in der Lage war, in die DB zu schreiben (es sagte readonly).

Hinweis: Auch wenn der angemeldete Benutzer in Windows 7 über Administratorrechte verfügt, wird eine Bestätigung angefordert, wenn ein Prozess (manchmal sogar Kopieren zwischen Laufwerken) Administratorzugriff erfordert. Nicht sicher, ob das neu ist. Ignoriere, ob dies etwas Altes ist.

Wenn ich die App als "run as Administrator" lief, funktionierte es gut.

Die app.manifest-Datei hat die folgende Einstellung.

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 

Ich verstehe ich es entweder der

<requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
<requestedExecutionLevel level="highestAvailable" uiAccess="false" /> 

Meine Frage folgt ändern kann, ist, wenn ich die Einstellung auf „requireAdministrator“ wird es normale Benutzer betreffen, die previleages Admin nicht haben?

Wie kann ich meine DB für einen normalen Benutzer schreibbar machen?

Wie wirkt sich diese Einstellung auf Benutzer von Windows XP aus?

Was ist die beste Konfiguration, mit der jeder die DB ohne Probleme aktualisieren kann?

Dies ist das erste Mal, dass ich mit einem solchen Problem mit Sicherheit konfrontiert bin. Irgendwelche Ratschläge?

Hinweis: Ich werde diese App in jedem möglichen Betriebssystem testen. Ich habe einen Test in Vista 32 Bit os (Admin Benutzer) und es hat gut funktioniert. Aber meine Erfahrung mit Windows 7 hat mich verwirrt.

+1

Wo speichern Sie die Datenbank und wie erstellen Sie sie? Wir haben ein ähnliches Szenario und es funktioniert gut in Windows 7, Sie müssen nur die Datenbankdatei an einem Speicherort platzieren, der von normalen Benutzern (z. B. Anwendungsdatenordner) beschreibbar ist. –

+0

Ab sofort habe ich die DB in den gleichen Ordner, in dem sich die Anwendung befindet. – Shoban

+0

Das ist dein Problem.Benutzer haben keinen Schreibzugriff auf den Ordner, in dem sich die Anwendung befindet. Verwenden Sie ShGetFolderPath (http://msdn.microsoft.com/en-us/library/bb762181 (VS.85) .aspx), und geben Sie CSIDL_APPDATA an, um den Pfad abzurufen. –

Antwort

3
  1. Ja, normale Benutzer müssen Administratoranmeldeinformationen angeben.
  2. Installieren Sie Ihre Datenbank an einem vom Benutzer beschreibbaren Speicherort oder verwenden Sie einen Service/IPC, um für Sie in die Datenbank zu schreiben.
  3. Pro Benutzer Datenbank wenn möglich. Sie können die benutzerspezifischen Inhalte in schreibbaren Speicherorten wie AppData speichern. Wenn nicht, dann benutze service/IPC, um die Schreibvorgänge für dich zu erledigen.
0

Am besten installieren Sie virtuelle Maschinen mit Ihren Ziel-Betriebssystemen. Sie wissen nie wirklich, was passieren wird, bis Sie testen.

+0

ja testete die App mit einem Freund Vista 32 Bit os und es hat gut funktioniert. aber meine Erfahrung mit Windows 7 hat mich verwirrt. – Shoban

Verwandte Themen