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