2009-03-03 10 views
6

Ho un'applicazione Web e un web.config corrispondente. L'applicazione dipende dagli assembly, che si trovano sul sistema in un percorso specifico (ad esempio c: \ programms \ myprog \ bla.dll) ma non registrati nel GAC. Come posso dire alla mia applicazione web dove trovare questi assembly da cui dipende? Credo di poterlo fare da qualche parte nel web.config. Ma come?Come specificare la posizione esatta di un assieme in un file di configurazione

Grazie in anticipo!

risposta

6

Controlla questo articolo su Assembly Binding Redirection.

In sostanza si dovrebbe aggiungere questo al vostro file di configurazione:

<runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705"> 
      <dependentAssembly> 
       * assembly information goes here * 
      </dependentAssembly> 
     </assemblyBinding> 
</runtime> 
0

Per la registrazione di controlli personalizzati e controlli utente:

<system.web> 
    <pages> 
     <controls> 
     <add assembly="WebApp.CustomControl" 
       namespace="WebApp.CustomControls" 
       tagPrefix="cc" /> 
     </controls> 
    </pages> 
</system.web> 

Per gli assiemi registrazione:

<assemblies> 
    <add assembly="WebApp.Util, Version=1.0, Culture=neutral, PublicKeyToken=f573aa5672ce4fd2"/> 
</assemblies> 

Spero che questo aiuta!

1

Perché si memorizzano le assemblee in 1 posizione specifica? A scopo di debug? È inoltre possibile aggiungere un hintpath a scopo di debug. Aggiungi un file ref ad esso e fallo copiare local = true. La ricerca dell'assemblaggio sarà prima locale nella cartella debug \ bin (application base).

+0

Ci sono un paio di altre applicazioni e servizi in esecuzione sulla macchina. Per mantenere le cose pulite, abbiamo deciso di archiviare tutti i file binari in un'unica posizione. Rende gli aggiornamenti più facili. – Mats

+0

Perché non usi il GAC? Il riutilizzo degli assembly è il luogo in cui GAC è presente. –

1

Ove possibile, memorizzare sempre i propri assembly nella GAC. Si comporterà come la singola directory che stai usando ora, con l'ulteriore vantaggio della distribuzione side-by-side!

+0

Soprattutto se si utilizzano assiemi con nome elevato. Serrature e altri problemi possono venire fuori altrimenti. –

Problemi correlati