Использование программы Publicize для создания закрытых методов доступа
Обновлен: Ноябрь 2007
Программа командной строки publicize.exe используется для создания сборки, содержащей открытые типы. Эти типы упаковывают все закрытые типы во вторую сборку. Программа publicize используется для создания модульных тестов, работающих с закрытыми типами.
Созданная сборка также известна как закрытый метод доступа. Закрытые методы доступа можно создавать в среде IDE, однако в сценариях автоматизации и построения необходимо использовать программу publicize.exe.
Программа Publicize не поддерживает делегаты или события
Тестируемая сборка должна содержать различные виды закрытых или внешних типов. При выполнении publicize.exe и передаче имени сборки создается закрытый метод доступа. Созданный закрытый метод доступа содержит код, обеспечивающий тестовому коду доступ к закрытым типам в сборке. Однако он не предоставляет доступ к закрытым или внутренним делегатам или событиям.
Использование средства Publicize.exe
Для работы с publicize.exe сначала нужно открыть командную строку Visual Studio 2008. Для этого нажмите кнопку Пуск, последовательно выберите Все программы, Microsoft Visual Studio 9.0, Набор средств Visual Studio и выберите пункт Командная строка Visual Studio 2008. Используйте следующий синтаксис:
Publicize.exe [параметры] входная_сборка
Эта команда создает оболочку для всех закрытых типов, представленных в сборке входная_сборка.
Параметры
Данная команда имеет следующие параметры: /target, /delaysign и /keyfile. Эти параметры описаны в следующих разделах.
/target
Синтаксис: Publicize.exe /target:[значение] входная сборка
Параметр /target предписывает построение созданной сборки для выполнения на определенной платформе. Далее перечислены возможные значения параметра /target.
Desktop: создает стандартный закрытый метод доступа к среде CLR. "Desktop" является значением по умолчанию для параметра target:.
WebSite: создает закрытый метод доступа, совместимый с веб-узлом.
Примечание.
Параметр "WebSite" используется только для тестирования кода на веб-узле, созданном в Visual Studio при выборе в меню Файл пункта Веб-узел.
Device: создает закрытый метод доступа, совместимый с интеллектуальными устройствами.
/delaysign
Синтаксис: Publicize.exe /delaysign входная_сборка
Параметр /delaysign используется, чтобы указать, что сборка в настоящее время подписана не будет. В выходной сборке резервируется место, в которое позднее можно поместить цифровую подпись.
Использование параметра /delaysign позволяет продолжить тестирование после выполнения publicize.exe. Поскольку используется временный маркер открытого ключа, сборку можно подписать позднее.
Параметр /delaysign должен использоваться вместе с параметром /keyfile. Файл, указанный с помощью параметра /keyfile должен содержать открытый ключ; наличие закрытого ключа является необязательным.
/delaysign также является параметром компилятора .NET. Дополнительные сведения см. в разделах Создание и использование сборок со строгими именами и Отложенная подпись сборки.
/keyfile
Синтаксис: Publicize.exe /keyfile<файл_ключа> входная_сборка
Параметр /keyfile используется для подписания сборки при выполнении publicize.exe. Термин <файл_ключа> используется для указания имени существующего файла, содержащего ключ шифрования. Термин <файл_ключа> может содержать абсолютный или относительный путь к файлу ключа.
Использование параметра /keyfile дает возможность также использовать параметр /delaysign. Если параметр /keyfile используется без параметра /delaysign, файл, указанный с помощью /keyfile, должен содержать как открытый, так и закрытый ключ.
/keyfile также является параметром компилятора .NET. Дополнительные сведения см. в разделе Создание и использование сборок со строгими именами.
Примеры
Следующая команда создает стандартный закрытый метод доступа к рабочему столу для Myassembly.dll.
Publicize.exe myassembly.dll
Следующая команда создает закрытый метод доступа для веб-узла MyWebSite.
Publicize.exe /target:WebSite myassemby.dll
Следующая команда создает стандартный закрытый метод доступа для сборки со строгим именем Myassembly.dll, но подписание откладывается на потом.
Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll
Следующая команда создает закрытый метод доступа для использования при тестировании приложения, построенного для выполнения в интеллектуальном устройстве.
Publicize.exe /target:device /keyfile<FileWithKeys.snk> myassembly.dll
См. также
Задачи
Практическое руководство. Тестирование закрытых методов