Finestra di dialogo Informazioni assembly - Visual Studio

Vediamo come impostare al meglio le opzioni relative alle Assembly Information del nostro progetto realizzato in Microsoft Visual Studio 2010/2012/2017.

Vediamo come visualizzare queste informazioni in Windows.

Vediamo il significato del parametro Deterministic nel file proj della nostra solution.

 

 

 

ASSEMBLY INFORMATION IN VISUAL STUDIO

Per impostare tutte le opzioni relative alle Assembly Information dovete andare sulla root del progetto ed accedere alla pagina delle proprietà (Alt + Invio).

In questa pagina alla voce Application, troverete il puilsante "Assembly Information...".

Qui è importante settare:

- Title: nome dell'applicazione

- Company: nome del proprietario

- Product: nome del prodotto (nei miei progetti di solito Title e Product corrispondono)

- Copyright

- Assembly Version: per questa io metto

1 0 *

1 0 0 0

In questa maniera ogni volta che si compila il progetto, il progressivo della DLL verrà autogenerato.

Se impostando così in fase di compilazione ottenete il seguente errore:

 

Severity Code Description Project File Line Suppression State Error CS8357 The specified version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilation.

 

vuol dire che nel file proj c'è impostato a true il seguente parametro:

 

<Deterministic>true</Deterministic>

 

E' sufficiente mettere a false questo parametro per far funzionare tutto.

Questa parametro a cosa serve? Impostandolo a true si dice al compilatore che due build successive devono produrre lo stesso output a parità di input. Con questa premessa si capisce bene che la versione dell'Assembly non può cambiare!

 

VISUALIZZARE L'ASSEMBLY VERSION IN WINDOWS

Come si fa, in ambiente Windows, a vedere l'Assembly Version di una DLL?

Per vedere il File Version è semplice. Basta andare nelle proprietà della DLL (click destro sulla DLL -> Proprietà -> Dettagli) e lì è ben visibile.

Ma per l'Assembly Version la soluzione non è così semplice.

Se non si vogliono installare prodotti di terze parti si deve usare il seguente script nella PowerShell di Windows:

 

$strPath = "Full path to DLL\my.dll"
$Assembly = [Reflection.Assembly]::Loadfile($strPath)

$AssemblyName = $Assembly.GetName()
$AssemblyName.version

 

L'output sarà più o meno così:

 

Major  Minor  Build  Revision
-----  -----  -----  --------
1      0      6453   20212
 

 

Buon lavoro!

Joomla SEF URLs by Artio