Condividi tramite


Assembly su più file

Nota

Questo articolo è specifico per .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.

È possibile creare assembly con più file con destinazione .NET Framework usando i compilatori della riga di comando o Visual Studio con Visual C++. Un file all'interno dell'assembly deve contenere il manifesto dell'assembly. Un assembly che avvia un'applicazione deve inoltre contenere un punto di ingresso, ad esempio un metodo Main o WinMain.

Ad esempio, si supponga di avere un'applicazione contenente due moduli di codice, Client.cs e Stringer.cs. Stringer.cs crea lo spazio dei nomi myStringer, a cui fa riferimento il codice in Client.cs. Client.cs contiene il metodo Main, che è il punto di ingresso dell'applicazione. In questo esempio vengono compilati i due moduli di codice e quindi viene creato un terzo file contenente il manifesto dell'assembly che avvia l'applicazione. Il manifesto dell'assembly fa riferimento a entrambi i moduli Client e Stringer.

Nota

Negli assembly su più file può essere presente un solo punto di ingresso, anche se l'assembly include più moduli di codice.

La scelta di creare un assembly su più file può essere consigliabile per varie ragioni:

  • Per combinare moduli scritti in linguaggi diversi. Questo è il motivo più comune per la creazione di un assembly su più file.

  • Per ottimizzare il download di un'applicazione inserendo i tipi usati raramente in un modulo che verrà scaricato solo quando necessario.

  • Per combinare moduli di codice scritti da più sviluppatori. Sebbene ogni sviluppatore possa compilare ogni modulo di codice in un assembly, questa operazione può forzare l'esposizione pubblica di alcuni tipi che non sarebbero esposti se tutti i moduli venissero inclusi in un assembly su più file.

Dopo aver creato l'assembly, è possibile firmare il file che contiene il manifesto dell'assembly, e quindi l'assembly, oppure è possibile assegnare un nome sicuro al file e all'assembly e inserirlo nella Global Assembly Cache.

Vedi anche