Controllo delle versioni degli assemblyAssembly versioning

Il controllo delle versioni degli assembly che utilizzano Common Language Runtime viene svolto interamente a livello dell'assembly.All versioning of assemblies that use the common language runtime is done at the assembly level. La specifica versione di un assembly e le versioni degli assembly dipendenti sono memorizzate nel manifesto dell'assembly.The specific version of an assembly and the versions of dependent assemblies are recorded in the assembly's manifest. I criteri di versione predefiniti del runtime prevedono che l'applicazione venga eseguita solo con le versioni con cui è stata compilata e testata. Per modificare il comportamento predefinito, è possibile esprimere esplicitamente criteri di versione diversi nei file di configurazione (il file di configurazione dell'applicazione, il file dei criteri dell'autore e il file di configurazione dell'amministratore del computer).The default version policy for the runtime is that applications run only with the versions they were built and tested with, unless overridden by explicit version policy in configuration files (the application configuration file, the publisher policy file, and the computer's administrator configuration file).

Nota

Il controllo delle versioni viene svolto solo su assembly con nomi sicuri.Versioning is done only on assemblies with strong names.

Per risolvere una richiesta di associazione di un assembly, il runtime compie diverse operazioni:The runtime performs several steps to resolve an assembly binding request:

  1. Controlla il riferimento originale dell'assembly per determinare a quale versione dell'assembly effettuare l'associazione.Checks the original assembly reference to determine the version of the assembly to be bound.

  2. Controlla tutti i file di configurazione interessati per adottare i criteri di versione prescritti.Checks for all applicable configuration files to apply version policy.

  3. Sulla base del riferimento originale e di eventuali reindirizzamenti specificati nei file di configurazione, determina la versione dell'assembly da collegare all'assembly che ha effettuato la chiamata.Determines the correct assembly from the original assembly reference and any redirection specified in the configuration files, and determines the version that should be bound to the calling assembly.

  4. Controlla le Global Assembly Cache, le codebase specificate nei file di configurazione, quindi controlla la directory dell'applicazione e le sottodirectory usando le regole di probe descritte in come il runtime individua gli assembly.Checks the global assembly cache, codebases specified in configuration files, and then checks the application's directory and subdirectories using the probing rules explained in How the runtime locates assemblies.

Questi passaggi sono illustrati nella figura seguente:The following illustration shows these steps:

Diagramma che illustra i passaggi della risoluzione della richiesta di associazione di un assembly.

Per altre informazioni sulla configurazione delle applicazioni, vedere configurare le app.For more information about configuring applications, see Configure apps. Per ulteriori informazioni sui criteri di associazione, vedere come il runtime individua gli assembly.For more information about binding policy, see How the runtime locates assemblies.

Informazioni sulla versioneVersion information

In ciascun assembly le informazioni sulla versione sono espresse in due modi:Each assembly has two distinct ways of expressing version information:

  • Il numero di versione dell'assembly, che insieme al nome dell'assembly e alle informazioni sulle impostazioni cultura è parte dell'identità dell'assembly.The assembly's version number, which, together with the assembly name and culture information, is part of the assembly's identity. Tale numero viene utilizzato dal runtime per applicare i criteri di versione e gioca un ruolo determinante nel processo per la risoluzione dei tipi in fase di esecuzione.This number is used by the runtime to enforce version policy and plays a key part in the type resolution process at run time.

  • Una versione informativa, cioè una stringa che riporta informazioni aggiuntive sulla versione a fini esclusivamente informativi.An informational version, which is a string that represents additional version information included for informational purposes only.

Numero di versione dell'assemblyAssembly version number

Tutti gli assembly hanno un numero di versione che concorre a definirne l'identità.Each assembly has a version number as part of its identity. Di conseguenza, due assembly che hanno numeri di versione differenti sono considerati dal runtime come due assembly distinti.As such, two assemblies that differ by version number are considered by the runtime to be completely different assemblies. Il numero di versione è rappresentato fisicamente da una stringa divisa in quattro parti, come indicato di seguito:This version number is physically represented as a four-part string with the following format:

<versione principale>.<versione secondaria>.<numero di build>.<revisione><major version>.<minor version>.<build number>.<revision>

Versione 1.5.1254.0 indica ad esempio 1 come numero di versione principale, 5 come numero di versione secondario, 1254 come numero di build e 0 come numero di revisione.For example, version 1.5.1254.0 indicates 1 as the major version, 5 as the minor version, 1254 as the build number, and 0 as the revision number.

Il numero di versione viene memorizzato nel manifesto dell'assembly insieme ad altre informazioni che contribuiscono a definire l'identità dell'assembly, tra cui il nome e la chiave pubblica, le informazioni sulle relazioni e le identità di altri assembly connessi all'applicazione.The version number is stored in the assembly manifest along with other identity information, including the assembly name and public key, as well as information on relationships and identities of other assemblies connected with the application.

Quando si compila un assembly, lo strumento di sviluppo memorizza informazioni sulle dipendenze che riguardano ciascun assembly a cui si fa riferimento nel manifesto dell'assembly.When an assembly is built, the development tool records dependency information for each assembly that is referenced in the assembly manifest. Il runtime utilizza tali numeri di versione, insieme alle informazioni di configurazione impostate da un amministratore, un'applicazione o un autore, per caricare la versione corretta dell'assembly a cui si fa riferimento.The runtime uses these version numbers, in conjunction with configuration information set by an administrator, an application, or a publisher, to load the proper version of a referenced assembly.

Ai fini del controllo di versione, il runtime distingue tra assembly dotati o meno di nome sicuro.The runtime distinguishes between regular and strong-named assemblies for the purposes of versioning. Il controllo di versione viene effettuato solo con assembly con nome sicuro.Version checking only occurs with strong-named assemblies.

Per informazioni su come specificare i criteri di associazione della versione, vedere configurare le app.For information about specifying version binding policies, see Configure apps. Per informazioni sul modo in cui il runtime usa le informazioni sulla versione per trovare un particolare assembly, vedere come il runtime individua gli assembly.For information about how the runtime uses version information to find a particular assembly, see How the runtime locates assemblies.

Versione informativa dell'assemblyAssembly informational version

La versione informativa è una stringa che specifica ulteriori informazioni sulla versione di un assembly a fini esclusivamente informativi. Tali informazioni non vengono utilizzate in fase di esecuzione.The informational version is a string that attaches additional version information to an assembly for informational purposes only; this information is not used at run time. La versione informativa espressa in testo semplice riporta informazioni commerciali, informazioni sul pacchetto o il nome del prodotto e non viene utilizzata dal runtime.The text-based informational version corresponds to the product's marketing literature, packaging, or product name and is not used by the runtime. Una versione informativa può ad esempio essere "Common Language Runtime, versione 1.0" o "NET Control SP 2".For example, an informational version could be "Common Language Runtime version 1.0" or "NET Control SP 2". Nella scheda Versione della finestra di dialogo delle Proprietà file in Microsoft Windows queste informazioni sono visualizzate alla voce "Versione prodotto".On the Version tab of the file properties dialog in Microsoft Windows, this information appears in the item "Product Version".

Nota

Sebbene sia possibile specificare qualsiasi testo, se il formato della stringa non è quello utilizzato dal numero di versione dell'assembly o se il formato è corretto ma il testo contiene caratteri jolly, viene visualizzato un messaggio di avviso.Although you can specify any text, a warning message appears on compilation if the string is not in the format used by the assembly version number, or if it is in that format but contains wildcards. L'avviso è puramente informativo.This warning is harmless.

La versione informativa viene espressa utilizzando l'attributo personalizzato System.Reflection.AssemblyInformationalVersionAttribute.The informational version is represented using the custom attribute System.Reflection.AssemblyInformationalVersionAttribute. Per ulteriori informazioni sull'attributo della versione informativa, vedere impostazione degli attributi dell'assembly.For more information about the informational version attribute, see Set assembly attributes.

Vedere ancheSee also