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:
davideandClaude Opus 5.5 committed 2026-09-23 08:29:03 +02:00
1 parent 206db85e12
commit 57020f9964
9 files changed
+209 -81

No files matched your search

+30 -6
View File
@@ -9,14 +9,14 @@ passaggio, non lo sostituisce.
## Funzionalità
1. **Indice CAD** — all'avvio carica automaticamente l'ultimo `cad_index.db`
usato (ricordato tra un avvio e l'altro). Se manca, si può selezionare un DB
esistente con **Apri DB...** o generarne uno nuovo con **Aggiorna
indice**, che scansiona il disco (di default `X:\`, tutte le cartelle di primo
1. **Indice CAD** — all'avvio carica automaticamente `cad_index.db` dalla
cartella di installazione (`%LOCALAPPDATA%\Programs\PrepStep`). Se manca, lo si
crea con **Aggiorna indice**, oppure si apre un altro DB per la sola sessione
con **Apri DB...**. **Aggiorna indice** che scansiona il disco (di default `X:\`, tutte le cartelle di primo
livello che trova) e indicizza tutti i file. La **cartella di lavoro** (dove
finiscono il CSV e la cartella `raw/`; gli STEP esportati con Creo vanno in
`step/`, dentro la stessa cartella) è proposta automaticamente e ricordata tra
un avvio e l'altro, modificabile in qualunque momento da **File → Scegli
`step/`, dentro la stessa cartella) è l'ultima scelta (ricordata tra un avvio e
l'altro) o, la prima volta, la cartella di installazione, modificabile in qualunque momento da **File → Scegli
cartella di lavoro...**.
2. **Importa Distinta Base** — trascina (o scegli da file) l'estrazione
`.xls`/`.xml` del gestionale (foglio "Distinta Base", colonne
@@ -86,6 +86,30 @@ L'eseguibile risultante è in `PrepStep\publish\PrepStep.exe` — un unico
file, si copia e si lancia su un'altra macchina Windows senza bisogno di .NET
installato.
## Setup di installazione
Per distribuire l'app agli utenti si genera un setup con [Inno Setup 6](https://jrsoftware.org/isinfo.php)
(una volta sola: `winget install JRSoftware.InnoSetup --scope user`). Dalla root del repo,
**dopo** il `dotnet publish` qui sopra:
```powershell
& "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" installer\PrepStep.iss
```
Produce `installer\Output\PrepStep-Setup-<versione>.exe` (versione letta dall'exe, cioè
`<Version>` del csproj). Il setup:
- installa **solo per l'utente corrente**, in `%LOCALAPPDATA%\Programs\PrepStep`, senza
chiedere i diritti di amministratore;
- crea nel menu Start i collegamenti al programma e al disinstallatore (quello sul desktop
è facoltativo);
- compare in "Impostazioni → App installate", da cui si disinstalla.
Se l'app è già installata, il setup chiede prima cosa fare: **Sì** aggiorna/reinstalla (DB e
impostazioni restano), **No** disinstalla, **Annulla** esce. Installazione silenziosa (aggiorna
senza chiedere) — es. per distribuirla da script:
`PrepStep-Setup-<versione>.exe /VERYSILENT /SUPPRESSMSGBOXES`.
## Struttura del progetto
Tutto il codice è in `PrepStep/` (unico progetto nella solution, GUI e