Aggiungi il setup per-utente e fissa il DB nella cartella di installazione
Nuovo installer/PrepStep.iss (Inno Setup 6): installa in %LOCALAPPDATA%\Programs\PrepStep senza diritti di amministratore, con collegamenti nel menu Start al programma e al disinstallatore. Se l'app è già installata chiede se aggiornarla o disinstallarla (Inno da solo aggiornerebbe sempre); con /VERYSILENT aggiorna senza chiedere. Il DB è ora sempre cad_index.db accanto all'eseguibile, cioè nella cartella di installazione: non si ricorda più l'ultimo DB aperto (ultimo_db.txt) e "Apri DB..." vale solo per la sessione. Senza una cartella di lavoro salvata si propone la cartella di installazione invece di quella del DB. Doc aggiornati nello stesso commit: README.md, CLAUDE.md, docs/architettura.md, docs/db-cad-index.md, docs/guida-utente.md, CHANGELOG.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
206db85e12
commit
57020f9964
9 files changed
+209
-81
No files matched your search
+11
-15
@@ -109,24 +109,20 @@ sulla share, non tipicamente cercato dalla UI).
|
||||
|
||||
## Come l'app trova il DB all'avvio
|
||||
|
||||
`Form1.InizializzaDatabase` prova, in ordine, i seguenti candidati e usa il primo che esiste
|
||||
su disco:
|
||||
`Form1.InizializzaDatabase` carica sempre e solo `cad_index.db` accanto all'eseguibile
|
||||
(`AppContext.BaseDirectory`: con il setup è `%LOCALAPPDATA%\Programs\PrepStep`). Nessun
|
||||
percorso viene ricordato fra un avvio e l'altro.
|
||||
|
||||
1. l'ultimo DB caricato con successo, salvato in
|
||||
`%AppData%/PrepStep/ultimo_db.txt` (`Form1.LeggiUltimoDbUsato`/`SalvaUltimoDbUsato`)
|
||||
2. `cad_index.db` accanto all'eseguibile (`AppContext.BaseDirectory`)
|
||||
3. `cad_index.db` nella working directory corrente
|
||||
|
||||
Se nessuno dei tre esiste, la fase 1 resta bloccata su "Database non trovato" finché l'utente
|
||||
non preme "Apri DB..." (`Form1.ScegliDatabase`, file picker libero) o "Aggiorna indice"
|
||||
(`Form1.AggiornaIndice`, che crea `cad_index.db` da zero accanto all'eseguibile se non c'è
|
||||
ancora un `_dbPath`).
|
||||
Se non esiste, la fase 1 resta bloccata su "Database non trovato" finché l'utente non preme
|
||||
"Aggiorna indice" (`Form1.AggiornaIndice`, che crea `cad_index.db` da zero accanto
|
||||
all'eseguibile) o "Apri DB..." (`Form1.ScegliDatabase`, file picker libero: il DB scelto vale
|
||||
solo per la sessione corrente, e "Aggiorna indice" aggiorna quello).
|
||||
|
||||
**Attenzione in sviluppo (dotnet run / IDE):** `AppContext.BaseDirectory` è la cartella di
|
||||
build (`PrepStep/bin/Release/net10.0-windows` o `Debug/...`), non la radice del repo. Se in
|
||||
quella cartella finisce per errore una copia di `cad_index.db` (es. creata lì da una vecchia
|
||||
sessione), l'app la userà invece di quella nella radice del repo, e le due copie divergeranno
|
||||
a ogni "Aggiorna indice" fatto nell'uno o nell'altro ambiente. Se i risultati di una ricerca
|
||||
build (`PrepStep/bin/Release/net10.0-windows` o `Debug/...`), non la radice del repo. L'app usa
|
||||
quindi la copia di `cad_index.db` in quella cartella (creandola lì al primo "Aggiorna
|
||||
indice"), non quella nella radice del repo né quella installata: per usare un altro DB in
|
||||
sviluppo va aperto con "Apri DB..." a ogni avvio. Se i risultati di una ricerca
|
||||
sembrano incoerenti con quello che ti aspetti di vedere sul DB "giusto", controlla con "Apri
|
||||
DB..." quale file è effettivamente caricato (mostrato in fase 1 accanto al conteggio dei file
|
||||
indicizzati) prima di sospettare un bug nella ricerca.
|
||||
|
||||
Reference in new issue
Block a user