WatsMyName
WatsMyName

Reputation: 4478

C# application using database from wrong location

I have setup my sqlite database path as

  string AppPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
  dbName = AppPath + "\\data\\rbssystems.sqlite";

But when application is packed and installed using setup, my application uses

C:\Users\<username>\AppData\Local\VirtualStore\Program Files\RBS\data

it should be using

C:\Program Files\RBS\data

Can anyone tell whats going around and how to make it read database from

C:\Program Files\RBS\data

Thanks

Upvotes: 1

Views: 111

Answers (1)

Thomas Levesque
Thomas Levesque

Reputation: 292495

Your app can't write to C:\Program Files unless it has administrative privileges. Windows automatically redirects you to C:\Users\<username>\AppData\Local\VirtualStore\Program Files instead. See this article for the explanation: http://blogs.windows.com/windows/archive/b/developers/archive/2009/08/04/user-account-control-data-redirection.aspx

Application data should always be in the AppData folder, never in Program Files.

Upvotes: 3

Related Questions