Passa le note di rilascio dall'ambiente: -p: le spezzava sulle virgole

MSBuild divide il valore di una proprieta' sulle virgole: -p:Note=uno, due
diventa la proprieta' Note=uno piu' un'opzione ` due`, e si finisce su MSB1006
`proprieta' non valida`. Una nota di rilascio in italiano contiene quasi sempre
una virgola, quindi l'attivita' di rilascio si sarebbe rotta al primo uso reale
del prompt delle note.

Le note arrivano ora in AUTOBIDDER_NOTE, che MSBuild legge come proprieta' senza
passare dal parsing della riga di comando. Provato con virgole, apostrofi, due
punti e virgolette: arrivano integri. -p:Note= resta accettato per chi lo passa
a mano senza virgole.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 23:02:18 +02:00
co-authored by Claude Opus 5
parent 66e3af043c
commit 5adc4a6526
2 changed files with 22 additions and 3 deletions
+8 -1
View File
@@ -127,10 +127,17 @@
"${workspaceFolder}/build/Release.proj",
"-t:Rilascia",
"-p:Versione=${input:versione}",
"-p:Note=${input:note}",
"-nologo",
"-v:m"
],
// Le note passano dall'ambiente, non da -p:. MSBuild spezza il valore di
// una proprietà sulle virgole e una nota in italiano ne ha quasi sempre
// una: si otterrebbe MSB1006 «proprietà non valida». Vedi Release.proj.
"options": {
"env": {
"AUTOBIDDER_NOTE": "${input:note}"
}
},
"presentation": {
"reveal": "always",
"panel": "dedicated"
+14 -2
View File
@@ -67,8 +67,20 @@
creare. Vuoto = la minor successiva all'ultimo tag. Vedi VersioneDaTag. -->
<Versione Condition="'$(Versione)' == ''"></Versione>
<!-- Note di rilascio; vuote = ricavate dai commit dall'ultimo tag. -->
<Note Condition="'$(Note)' == ''"></Note>
<!--
Note di rilascio. Vuote = solo il numero di versione.
Arrivano da una variabile d'ambiente, non da -p:. MSBuild spezza il valore
di una proprietà sulle virgole: `-p:Note=uno, due` diventa la proprietà
Note=uno più l'opzione " due", e si finisce su MSB1006 "proprietà non
valida". Una nota di rilascio in italiano contiene quasi sempre una
virgola, quindi il passaggio per riga di comando è inutilizzabile.
L'ambiente non ha questo problema, e MSBuild legge le variabili
d'ambiente come proprietà.
-p:Note= resta accettato per chi lo passa a mano senza virgole.
-->
<Note Condition="'$(Note)' == ''">$(AUTOBIDDER_NOTE)</Note>
<!-- ── Perché serve azzerare queste variabili ──────────────────────────
`dotnet test` e `dotnet publish` lanciati da dentro MSBuild ereditano