Condividi tramite


Utilizzo di publicize per creare funzioni di accesso private

Aggiornamento: novembre 2007

Lo strumento da riga di comando publicize.exe genera un assembly che contiene tipi pubblici. Questi tipi pubblici eseguono il wrapping di tutti i tipi privati in un secondo assembly. Utilizzare publicize per creare unit test destinati ai tipi privati.

L'assembly generato è noto anche come funzione di accesso privata. È inoltre possibile generare funzioni di accesso private dall'IDE, mentre è possibile utilizzare publicize.exe negli scenari di automazione, scripting e compilazione.

Publicize non supporta delegati o eventi

Un assembly che si sta testando potrebbe contenere diversi tipi privati o interni. Quando si esegue publicize.exe e si passa il nome dell'assembly, viene generata una funzione di accesso privata per tale assembly. La funzione di accesso privata generata contiene codice che consente al codice del test di accedere ai tipi privati dell'assembly. Non fornisce tuttavia l'accesso a delegati o eventi privati o interni.

Utilizzo dello strumento publicize.exe

Per utilizzare publicize.exe, aprire prima un prompt dei comandi di Visual Studio 2008. A tale scopo, fare clic su Start, scegliere Tutti i programmi, Microsoft Visual Studio 9.0, Visual Studio Tools, quindi Prompt dei comandi di Visual Studio 2008. Utilizzare la sintassi seguente con publicize.exe:

Publicize.exe [opzioni] input-assembly

Questo comando esegue il wrapping di tutti i tipi privati presenti nell'assembly input-assembly.

Opzioni

Questo comando dispone delle opzioni /target, /delaysign e /keyfile, di cui viene fornita una descrizione nelle sezioni seguenti.

/target

Sintassi: Publicize.exe /target:[valore] input-assembly

L'opzione /target fa sì che l'assembly generato venga compilato in modo da essere eseguito su una piattaforma specifica. I valori possibili per /target sono:

  • Desktop: genera una funzione di accesso privata CLR standard. Desktop è il valore predefinito per l'opzione target:.

  • Sito web: genera una funzione di accesso privata compatibile con un sito Web.

    Nota:

    Utilizzare l'opzione WebSite solo per il test del codice di un sito Web creato in Visual Studio scegliendo Sito Web dal menu File.

  • Dispositivo: genera una funzione di accesso privata compatibile con i dispositivi Smart Device.

/delaysign

Sintassi: Publicize.exe /delaysign input-assembly

Utilizzare l'opzione /delaysign per indicare che non si desidera firmare l'assembly in questo momento. Viene riservato spazio nell'assembly di output in modo da poter aggiungere in seguito una firma digitale.

Utilizzando /delaysign, è possibile proseguire con i test dopo l'esecuzione di publicize.exe. Viene utilizzato un token di chiave pubblica temporaneo e sarà possibile firmare l'assembly in un momento successivo.

Se si utilizza l'opzione /delaysign, è necessario utilizzare anche l'opzione /keyfile. Il file specificato con l'opzione /keyfile deve contenere una chiave pubblica ed eventualmente può anche contenere una chiave privata.

/delaysign rappresenta anche un'opzione del compilatore .NET. Per ulteriori informazioni, vedere Creazione e utilizzo degli assembly con nome sicuro e Ritardo della firma di un assembly.

/keyfile

Sintassi: Publicize.exe /keyfile<file di chiave> input-assembly

Utilizzare l'opzione /keyfile per firmare un assembly quando si esegue publicize.exe. Utilizzare la voce <file di chiave> per specificare il nome di un file esistente che contiene una chiave crittografica. La voce <file di chiave> può includere un percorso assoluto o relativo per il file di chiave.

Se si utilizza l'opzione /keyfile, è anche possibile utilizzare l'opzione /delaysign. Se si utilizza /keyfile senza utilizzare anche /delaysign, il file specificato con l'opzione /keyfile deve contenere una chiave pubblica e una chiave privata.

/keyfile rappresenta anche un'opzione del compilatore .NET. Per ulteriori informazioni, vedere Creazione e utilizzo degli assembly con nome sicuro.

Esempi

Il comando seguente genera una funzione di accesso privata desktop standard per Myassembly.dll:

Publicize.exe myassembly.dll

Il comando seguente genera una funzione di accesso privata per il sito Web MyWebSite:

Publicize.exe /target:WebSite myassemby.dll

Il comando seguente consente di generare una funzione di accesso privata desktop standard per un assembly con nome sicuro, Myassembly.dll, ma posticipa la firma a un momento successivo:

Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll

Il comendo seguente consente di generare una funzione di accesso privata da utilizzare quando si esegue il test di un'applicazione compilata per essere eseguita su un dispositivo Smart Device:

Publicize.exe /target:device /keyfile<FileWithKeys.snk> myassembly.dll

Vedere anche

Attività

Procedura: testare un metodo privato

Concetti

Utilizzo delle funzioni di accesso private