Utilisation de Publicize pour créer des accesseurs private
Mise à jour : novembre 2007
L'outil en ligne de commande publicize.exe génère un assembly qui contient des types publics. Ces types publics encapsulent tous les types privés dans un deuxième assembly. Vous utilisez publicize pour créer des tests unitaires qui ont pour cible des types privés.
L'assembly généré est également connu comme un accesseur private. Vous pouvez également générer des accesseurs private depuis l'IDE, mais vous pouvez utiliser publicize.exe pour l'automatisation, les scripts et les scénarios de compilation.
Publicize ne prend pas en charge de délégués ou d'événements
Un assembly que vous testez peut contenir différents types privés (private) ou internes. Lorsque vous exécutez publicize.exe et passez le nom de cet assembly, il génère un accesseur private pour cet assembly. L'accesseur private généré contient du code qui permet à votre code de test d'accéder aux types privés dans l'assembly. Toutefois, il ne fournit pas accès aux délégués ou événements privés ou internes.
Utilisation de l'outil Publicize.exe
Pour utiliser publicize.exe, ouvrez d'abord une invite de commandes Visual Studio 2008. Pour cela, cliquez sur Démarrer, puis cliquez sur Tous les programmes, puis pointez sur Microsoft Visual Studio 9.0 puis sur Visual Studio Tools, et cliquez sur Invite de commandes de Visual Studio 2008. Utilisez la syntaxe suivante pour publicize.exe :
Publicize.exe [options] input-assembly
Cette commande encapsule tous les types privés présentés dans l'assembly input-assembly.
Options
Cette commande contient les options /target, /delaysign et /keyfile. Ces options sont décrites dans les sections suivantes.
/target
Syntaxe : Publicize.exe /target:[value] input-assembly
L'option /target permet de générer l'assembly pour s'exécuter sur une plateforme spécifique. Les valeurs possibles de /target sont les suivantes :
Desktop : génère un accesseur private de CLR standard. Desktop est la valeur par défaut de l'option target:.
WebSite : génère un accesseur private compatible avec un site Web.
Remarque : Utilisez l'option WebSite uniquement pour tester du code dans un site Web que vous avez créé dans Visual Studio en sélectionnant Site Web dans le menu Fichier.
Device : génère un accesseur private compatible avec les appareils de type Smart Device.
/delaysign
Syntaxe : Publicize.exe /delaysign input-assembly
Utilisez l'option /delaysign pour indiquer que vous ne souhaitez pas signer l'assembly pour le moment. Un espace est réservé dans l'assembly de sortie afin qu'une signature numérique puisse être ajoutée ultérieurement.
Si vous utilisez /delaysign, vous pouvez poursuivre les tests après avoir exécuté publicize.exe. Un jeton de clé publique temporaire est utilisé et vous pouvez signer l'assembly ultérieurement.
Si vous utilisez l'option /delaysign, vous devez également utiliser l'option /keyfile. Le fichier spécifié à l'aide de l'option /keyfile doit contenir une clé publique et peut éventuellement contenir une clé privée.
/delaysign est également une option du compilateur .NET. Pour plus d'informations, consultez Création et utilisation d'assemblys avec nom fort et Temporisation de signature d'un assembly.
/keyfile
Syntaxe : Publicize.exe /keyfile<fichier clé> input-assembly
Utilisez l'option /keyfile pour signer un assembly lorsque vous exécutez publicize.exe. Utilisez le terme <fichier clé> pour indiquer le nom d'un fichier qui contient une clé de chiffrement. Le terme <fichier clé> peut inclure un chemin d'accès absolu ou relatif au fichier de clé.
Si vous utilisez l'option /keyfile, vous pouvez également utiliser l'option /delaysign. Si vous utilisez /keyfile sans /delaysign, le fichier spécifié à l'aide de l'option /keyfile doit contenir une clé publique et une clé privée.
/keyfile est également une option du compilateur .NET. Pour plus d'informations, consultez Création et utilisation d'assemblys avec nom fort.
Exemples
La commande suivante génère un accesseur private standard (desktop) pour Myassembly.dll :
Publicize.exe myassembly.dll
La commande suivante génère un accesseur private pour le site Web MyWebSite :
Publicize.exe /target:WebSite myassemby.dll
La commande suivante génère un accesseur private bureautique standard pour un assembly avec nom fort (Myassembly.dll), mais reporte la signature :
Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll
La commande suivante génère un accesseur private à utiliser lorsque vous testez une application conçue pour s'exécuter sur un Smart Device :
Publicize.exe /target:device /keyfile<FileWithKeys.snk> myassembly.dll
Voir aussi
Tâches
Comment : tester une méthode privée