Utilizzo di Publicize per creare una funzione di accesso privata
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.
Nota
L'utilizzo delle funzioni di accesso è stato deprecato in Visual Studio 2010 e non può essere incluso nelle versioni future di Visual Studio.
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 2010. A tale scopo, fare clic su Start, scegliere Tutti i programmi, Microsoft Visual Studio 10.0, Visual Studio Tools, quindi Prompt dei comandi di Visual Studio 2010. 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.
/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