Avatar billede __Allan__ Seniormester
21. februar 2019 - 00:11 Der er 2 kommentarer

Problemer ved release af applikation, med Excel-ark og SQLite-db.

Hej med jer

Jeg har i VS udviklet et lille program. Men jeg har lidt udfordringer ifbm. release af programmet.
Når jeg kører programmet i debug-mode i Visual Studio, virker det fint.
Men når jeg har dannet et installer projekt og ændret til release, så oplever jeg følgende issues:
1.
Det er som om jeg ikke kan finde rundt i fil-stierne fra mit program.
Jeg har defineret et filepath til .\Data\ hvor jeg har gemt både min excel-fil og  databasen.
I App.config har jeg defineret en connectionString til .\Data\minDB.db, og dén finder programmet godt ikke, til trods for at programmet godt nok finder min Excel-fil. Den eneste måde hvorpå jeg kan få det til at virke med db'en er hvis jeg kopierer db-filen uden for 'Data' mappen.

2.
Jeg har pludselig ikke skrive-rettigheder til min SQLite database. Dette kan jeg omgå ved at finde database-filen og ændre rettighederne, men det er jo ikke meningen at en bruger skal foretage den slags ændringer efter at have installeret programmet.

3. 
Når programmet er installeret og køres, så virker det langsomt, og lukker ofte umotiveret ned. Dette har jeg aldrig oplevet under debug...

Er der nogen der har en idé om, hvad jeg gør forkert ?
Avatar billede arne_v Ekspert
21. februar 2019 - 01:28 #1
re 1)

relative path er vel relativ til process default ikke til exe, hvilket ofte er problematisk

jeg vil foreslaa at konstruere en absolut path udfra path til exe

re 2)

det skal vel fixes af installations script

re 3)

catch alle exceptions og log til en log-fil og se hvad du faar ud af det
Avatar billede __Allan__ Seniormester
23. februar 2019 - 11:49 #2
Tak for dine svar.

1+2)
Jeg har googlet lidt og forsøgt mig lidt med denne løsning:
https://stackoverflow.com/questions/4243731/how-to-use-application-data-in-an-app-config-connectionstring/4243751#4243751

hvor jeg i ConnectionString henviser til Data Source=%AppData%\Data\...
og samme tid i installeren, får filerne placeret i brugernavn\AppData\Roaming\Data\

Hermed lykkes det at "installere" filerne med skriverettigheder. Men nu fejler programmet, og hvis jeg trykker på fejlfinding får jeg:
System.Data.SQLite.SQLiteException: 'unable to open database file'

Ændrer jeg config-filen og erstatter %AppData% i min connectionstring med:
C:\Users\brugernavn\AppData\Roaming\Data\ så virker programmet. Men det er jo uhensigtsmæssigt at brugeren selv skal rette dette.

Har uden held forsøgt mig med denne løsning:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/67c417e8-cf39-4ae2-928c-2b4f709b146d/get-appdata-folder-to-store-in-appconfig-file?forum=csharpgeneral

Nogen der har en idé til hvordan jeg får det løst, så brugeren ikke skal rette i config-filen efter installation ?

3)
Jeg spottede en alvorlig fejl i min db-fil, hvilket formentlig har forårsaget fejlene.
Men hvor fanger og logger jeg alle exceptions i en WPF applikation ?

Jeg formoder det et noget med en try/catch-block og skriv til fil, men hvor sætter jeg den ind, så den fanger for hele app'en ? - Er det nok blot at "gribe rundt om" alt indhold i min public MainWindow-blok ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester