Redirecționarea versiunilor ansamblului

Aveți posibilitatea să redirecționați linkurile compilate la ansamblurile .NET Framework, la ansambluri terțe sau să construiți propria aplicație. Puteți să vă redirecționați aplicația pentru a utiliza o altă versiune a ansamblului în mai multe moduri: prin politica editorului, utilizând fișierul de configurare a aplicației sau utilizând fișierul de configurare a calculatorului. Acest articol vă arată cum funcționează legarea de asamblare în .NET Framework și cum îl puteți configura.







Legăturile cu ansamblurile .NET Framework sunt uneori redirecționate în timpul procesului numit unificare a ansamblurilor. .NET Framework include o versiune a CLR și aproximativ douăzeci de ansambluri .NET Framework care fac parte din biblioteca de tip. Aceste ansambluri .NET Framework sunt tratate ca un singur bloc de runtime. În mod implicit, când începe aplicația, toate referințele de tip din codul executat de runtime sunt trimise la ansamblurile .NET Framework care au același număr de versiune ca timpul de execuție încărcat în proces. Redirecțiile implementate în acest model sunt comportamentul implicit pentru timpul de execuție.

De exemplu, dacă aplicația dvs. se referă la tipuri din spațiul de nume System.XML și a fost construită utilizând .NET Framework 4.5, aceasta conține legături statice la ansamblul System.XML care vine cu timpul de execuție 4.5. Dacă doriți să redirecționați o legătură ancorată pentru a indica ansamblul System.XML livrat cu .NET Framework 4, puteți pune informațiile de redirecționare în fișierul de configurare al aplicației. Trimiterea redirecționării obligatorii în fișierul de configurare pentru ansamblul unificat .NET Framework anulează unificarea pentru acest ansamblu.

În plus, poate fi necesar să redirecționați manual legarea la ansambluri terțe, dacă există mai multe versiuni disponibile.

Furnizorii de ansambluri pot direcționa aplicațiile către o versiune mai nouă a ansamblului, inclusiv fișierul cu politica editorului cu noul ansamblu. Fișierul politicii editorului, care se află în cache-ul global de asamblare, conține opțiunile pentru redirecționarea ansamblurilor.

Fiecare versiune a numărului de construcție principal_number.add_additional are propriul fișier de politică pentru editori. De exemplu, redirecționările de la versiunea 2.0.2.222 la versiunea 2.0.3.000 și de la versiunea 2.0.2.321 la versiunea 2.0.3.000 conduc la același fișier, deoarece sunt asociate cu versiunea 2.0. Cu toate acestea, redirecționarea de la versiunea 3.0.0.999 la versiunea 4.0.0.000 are ca rezultat un fișier pentru versiunea 3.0.999. Fiecare versiune majoră a ansamblului .NET Framework are propriul fișier al politicii editorului.

Dacă există un fișier de politică a editorului pentru ansamblu, runtime-ul verifică acest fișier după verificarea fișierului de configurare al aplicației și a manifestului de asamblare. Furnizorii trebuie să utilizeze fișierele privind politicile editorilor numai dacă noul ansamblu este compatibil înapoi cu ansamblul redirecționat.







Puteți ocoli politica editorului pentru aplicația dvs., specificând setările din fișierul de configurare a aplicației, așa cum este descris în secțiunea privind politicile editorilor ocolind.

Există mai multe metode diferite de modificare a comportamentului de legare pentru aplicația dvs. utilizând fișierul de configurare a aplicației: aveți posibilitatea să modificați manual acest fișier sau să vă bazați pe redirecționarea automată a obligațiilor sau să specificați comportamentul obligatoriu prin accesarea cu crawlere a politicii editorilor.

Puteți schimba manual fișierul de configurare a aplicației pentru a rezolva problemele de construire. De exemplu, în cazul în care vânzătorul lanseaza o noua versiune a ansamblului pe care aplicația utilizează fără a politica editorului, deoarece nu garantează compatibilitatea cu versiunile anterioare, puteți trimite aplicația pentru a utiliza noua versiune a ansamblului, introducerea informațiilor obligatorii de asamblare în fișierul de configurare aplicație, după cum urmează.

În cazul în care un alt proiect în referințele dumneavoastră de aplicare versiunea 1.0.0.0 a aceluiași ansamblu, redirecționarea automată se leagă adăugat la app.config fișierul de ieșire de la intrarea la cerere a fost standardizat cu versiunea 2.0.0.0 a acestei adunări:

Dacă este necesar, puteți înlocui politica editorului în fișierul de configurare a aplicației. De exemplu, noile versiuni ale ansamblurilor declarate ca compatibile înapoi pot continua să perturbe aplicația. Dacă doriți să ignorați politica editurilor, adăugați un element per element în fișierul de configurare a aplicației și setați atributul aplicației la nr. care va suprascrie toate setările da anterioare.

Depășiți politica editorului pentru a menține aplicația în funcțiune pentru utilizatori, dar asigurați-vă că ați raportat problema furnizorului de servicii de asamblare. În cazul în care ansamblul are un dosar privind politica de publicare, vânzătorul trebuie să se asigure că ansamblul este compatibil cu versiunile anterioare și că clienții pot utiliza în cea mai mare măsură noua versiune.

Uneori, un administrator de computer dorește ca toate aplicațiile de pe computer să utilizeze o versiune specifică a ansamblului. De exemplu, un administrator ar putea dori ca fiecare aplicație să utilizeze o versiune specifică a ansamblului, deoarece această versiune stabilește o gaură de securitate. Dacă ansamblul este redirecționat către un fișier de configurare a calculatorului, toate aplicațiile de pe acest computer care utilizează vechea versiune vor fi redirecționate către noua versiune. Fișierul de configurare a computerului înlocuiește fișierul de configurare a aplicației și fișierul de politică al editorului. Acest fișier este localizat în directorul% din mediul de instalare runtime% \ Config. Ca regulă. .NET Framework este instalat în directorul .rive% \ Windows \ Microsoft.NET \ Framework.

Același format XML vă permite să specificați redirecționările de legare în fișierul de configurare a aplicației, fișierul de configurare a calculatorului și fișierul de politică al editorului. Pentru a redirecționa de la o versiune a unui ansamblu la altul, utilizați elementul . Unele kernel-uri de automatizare UI maschează orice diferențe în structurile aparținând diferitelor părți ale UI. Unele kernel-uri de automatizare UI maschează orice diferențe în structurile aparținând diferitelor părți ale UI. De exemplu, indică faptul că timpul de rulare trebuie să utilizeze versiunea 2.0.0.0 în loc de a construi versiuni de la 1.1.0.0 la 1.2.0.0.

Următorul exemplu de cod demonstrează diferite scenarii de redirecționare a legăturii. Exemplul specifică redirecționarea pentru gama de versiuni ale myAssembly și o redirecționare a legării pentru secțiunea mySecondAssembly. Exemplul specifică, de asemenea, că fișierul politicii editorului nu va înlocui redirecționările de legare pentru myThirdAssembly.

Pentru a lega un ansamblu, trebuie să specificați linia "urn: schemas-microsoft-com: asm.v1" cu atributul xmlns în etichetă .







Articole similare

Trimiteți-le prietenilor: