Использование программы Publicize для создания закрытого метода доступа
Программа командной строки publicize.exe используется для создания сборки, содержащей открытые типы. Эти типы упаковывают все закрытые типы во вторую сборку. Программа publicize используется для создания модульных тестов, работающих с закрытыми типами.
Созданная сборка также известна как закрытый метод доступа. Закрытые методы доступа можно создавать в среде IDE, однако в скриптах автоматизации и построения необходимо использовать программу publicize.exe.
Примечание
Использование методов доступа в Visual Studio 2010 не рекомендуется. Они могут не войти в будущие версии Visual Studio.
Программа Publicize не поддерживает делегаты или события
Тестируемая сборка должна содержать различные виды закрытых или внешних типов. При выполнении publicize.exe и передаче имени сборки создается закрытый метод доступа. Созданный закрытый метод доступа содержит код, обеспечивающий тестовому коду доступ к закрытым типам в сборке. Однако он не предоставляет доступ к закрытым или внутренним делегатам или событиям.
Использование средства Publicize.exe
Для работы с publicize.exe сначала нужно открыть командную строку Visual Studio 2010. Для этого нажмите кнопку Пуск, последовательно выберите Все программы, Microsoft Visual Studio 10.0, Набор средств Visual Studio и выберите пункт Командная строка Visual Studio 2010. Используйте следующий синтаксис:
Publicize.exe [параметры] входная_сборка
Эта команда создает оболочку для всех закрытых типов, представленных в сборке входная_сборка.
Параметры
Данная команда имеет следующие параметры: /target, /delaysign и /keyfile. Эти параметры описаны в следующих разделах.
/target
Синтаксис: Publicize.exe /target:[значение] входная сборка
Параметр /target предписывает построение созданной сборки для выполнения на определенной платформе. Далее перечислены возможные значения параметра /target.
Desktop: создает стандартный закрытый метод доступа к среде CLR. "Desktop" является значением по умолчанию для параметра target:.
WebSite: создает закрытый метод доступа, совместимый с веб-узлом.
Примечание
Параметр "WebSite" используется только для тестирования кода на веб-узле, созданном в Visual Studio при выборе в меню Файл пункта Веб-узел.
/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
См. также
Основные понятия
Модульные тесты для частных, внутренних и дружественных методов