Domanda

Sono un po 'confuso su dove si trovano fisicamente assembly .NET. Prendete buona LINQ . Nel mio file web.config che dice:

<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Questo è il riferimento a LINQ. Ma dove esattamente è la DLL questo si riferisce alla posizione? Non c'è alcun percorso nel sopra e non è nella mia cartella bin.

Inoltre ho quello che penso è un riferimento di montaggio di terze parti:

<add assembly="MapInfo.CoreTypes, Version=4.0.0.483, Culture=neutral, PublicKeyToken=F548BCBA69D4B8DA" />

Come faccio a sapere dove questo si trova sulla mia macchina se non è nella cartella bin?

Inoltre, se un file DLL si trova nella directory bin, posso presumo che non ha bisogno di essere riferimento in web.config?

È stato utile?

Soluzione

assemblee di terze parti potrebbero non essere in GAC , vedere l'articolo MSDN come il runtime individua gli assembly per l'insieme delle regole . Oppure, provare i SysInternals FILEMON .

Altri suggerimenti

Credo che si trovano nella GAC , che si trova nella %WINDIR%\Assembly. Ulteriori informazioni sono in Demystifying .NET globale Assembly cache ( Il Codice Progetto ).

Assemblea e Fusion percorso sondaggio è piuttosto complicato. Devo dire che in genere .NET risolverà un assembly da uno dei due posti:

  1. O si troverà nella directory locale, come la directory corrente, una sottodirectory bin, o altro luogo indicato dalla logica Fusion assemblaggio vincolante, o

  2. si troverà in negozio GAC globale, dove le assemblee possono essere registrati e alzò lo sguardo per nome, la versione e un paio di altri attributi.

Per rispondere alla tua domanda specifica circa la directory 'bin', se si sta utilizzando ASP.NET (che presumo dal riferimento a web.config), allora sì, non è necessario includere il percorso - ASP.NET si prenderà cura di tutto ciò che deve fare per rendere aspetto .NET per le assemblee nella directory 'bin'.

Alcuni degli assembly .NET si trovano nella cartella di installazione di .Net

come

  

C: \ Program Files (x86) \ Riferimento   Assemblee Microsoft \ Framework.NETFramework \ v4.0 \

Al suo interno ci sono le assemblee di seduta. In un livello .NETFramework up si troverebbero le diverse versioni di .NET e le loro assemblee corrispondenti.

La risposta breve è: dipende da un sacco di cose. Il quadro ha il suo per come viene caricato assemblee. Tuttavia, è possibile ignorare questo utilizzando i vari file di configurazione (Machine.config, ecc). Per scoprire dove gli assembly in realtà vivono su un particolare sistema, usa il Assemblea Binding Log Viewer. (Parte della piattaforma SDK E '. Basta aprire una shell dei comandi SDK ed eseguire Fuslogvw.exe.)

Un assieme può essere trovato per lo più in uno dei seguenti luoghi:

  • GAC - C: \ Windows \ Assembly \ GAC (Microsoft fornito e da terze parti in qualche casi)
  • Cartella di installazione
  • (la maggior parte del controlli di terze parti)

È possibile ottenere il percorso e altre informazioni relative a un assembly con un clic destro sul gruppo nei vostri riferimenti del progetto e selezionando Proprietà .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top