Практическое руководство. Публикация приложения WPF с включенными визуальными стилями
Визуальные стили включают просмотр общих элементов управления к изменению на основе разделе выбранной пользователем.По умолчанию стили оформления не разрешена для приложений Windows Presentation Foundation (WPF), поэтому ее нужно включить их вручную.Однако включить визуальные стили для приложения WPF, а затем опубликовать решение вызывают ошибку.В этом подразделе описывается, как разрешить эту ошибку и процесс публиковать приложение WPF с включенными стили оформления.Дополнительные сведения о стилях форматирования см. в разделе Visual Styles Overview.Дополнительные сведения о сообщении об ошибке см. в разделе Устранение неполадок, приводящих к определенным ошибкам в развертываниях ClickOnce.
Чтобы разрешить данную ошибку и публиковать решение необходимо выполнить следующие задачи:
Публиковать решение без доступных визуальных стилей.
Создание файла манифеста.
Внедрить файл манифеста в исполняемый файл публикованного решения.
Подписать приложение и манифесты развертывания.
Затем можно переместить публикованные файлы в расположение, из которого нужно пользователям устанавливать приложение.
Публиковать решение без доступных визуальных стилей
Убедитесь, что проект не включены стили оформления.Во-первых, проверьте файл манифеста проекта для следующего XML.Затем, если XML присутствует, заключите XML с тегом комментария.
По умолчанию стили оформления не включено.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
Следующие процедуры показывают, как открыть файл манифеста, связанный с проектом.
Открыть файл манифеста в проекте Visual Basic
В строке меню выберите Проект" Название проектаСвойства, где Название проекта имя проекта WPF.
Страницы свойств для проекта WPF отображаются.
На Приложение выбор вкладки Просмотреть параметры Windows.
Открытие файла app.manifest в Редактор кода.
Открыть файл манифеста в проекте C#
В строке меню выберите Проект" Название проектаСвойства, где Название проекта имя проекта WPF.
Страницы свойств для проекта WPF отображаются.
На Приложение вкладка ставит заметку имени, которое отображается в поле манифеста.Это имя манифеста, который связан с проектом.
Примечание If Внедрить манифест с настройками по умолчанию OR Создание приложения без манифеста в поле манифеста, визуальные стили не включайте.Если имя файла манифеста появляется в поле манифеста, переходите к следующему этапу в этой процедуре.
IN Обозреватель решенийвыберите Показать все файлы ().
Эта кнопка отображаются все элементы проекта, включая те, которые были исключены и те, которые обычно скрыты.Файл манифеста появляется как элемент проекта.
Постройте и публиковать решение.Дополнительные сведения о том, как публиковать решение см. в разделе Практическое руководство. Публикация приложения ClickOnce с помощью мастера публикации.
Создание файла манифеста
Вставьте следующий XML-код в файл Блокнота.
Это XML описывает сборку, которая содержит элементы управления, которые поддерживают стили оформления.
<?xml version="1.0" encoding="utf-8"?><asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency></asmv1:assembly>
В Блокноте последовательно щелкните Файл и Сохранить как.
Выберите Все файлы в раскрывающемся спискеТип файла в диалоговом окне Сохранить как.
в Имя файла окно, назовите файл manifest и добавляет в конец имени файла.Например: themes.manifest.
Выберите Обзор папок кнопка выберите любую папку, а затем нажмите кнопку Сохранить.
Примечание Остальные процедуры предполагают, что имя этого файла themes.manifest и файл сохраняется в каталог C:\temp на компьютере.
Внедрить файл манифеста в исполняемый файл публикованного решения
Откройте командную строку Visual Studio.
Дополнительные сведения о том, как открыть Командная строка Visual Studioсм. Командная строка Visual Studio и пакета Windows SDK.
Примечание Оставшиеся шаги выполняют следующих предположений о решении.
Имя решения MyWPFProject.
Решение находится в следующем каталоге: %UserProfile%\Documents\Visual Studio 2010\Projects\.
Решение публикации в следующий каталог: %UserProfile%\Documents\Visual Studio 2010\Projects\publish.
Последнюю версию публикованных файлы приложения находится в следующем каталоге: %UserProfile%\Documents\Visual Studio 2010\Projects\publish\Application Files\WPFApp_1_0_0_0
Нельзя использовать имя или расположение каталогов, описанной выше.Имя и расположение, описанным выше используются только для демонстрации шаги, необходимые для публиковали решение.
Из командной строки, измените путь к каталогу, содержащему последнюю версию публикованных файлы приложения.В следующем примере показан этот шаг.
cd "%UserProfile%\Documents\Visual Studio 2010\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"
В командной строке выполните следующую команду, чтобы внедрить файл манифеста в исполняемый файл приложения.
mt –manifest c:\temp\themes.manifest –outputresource:MyWPFApp.exe.deploy
Подписать приложение и манифесты развертывания
В командной строке выполните следующую команду удалить .deploy расширения из исполняемого файла в текущей папке.
ren MyWPFApp.exe.deploy MyWPFApp.exe
Примечание В этом примере предполагается, что имеется только один файл .deploy расширение файла.Убедитесь, что вы переименуете все файлы в каталоге, имеющих .deploy расширение файла.
В командной строке выполните следующую команду подписать манифест приложения.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Примечание В этом примере предполагается, что подписи манифеста с помощью .pfx файл проекта.Если не подписи манифеста, можно снять –cf параметр, используемый в данном примере.Если подписи манифеста с сертификатом, который требуется пароль, укажите –password параметр (For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – passwordPassword).
В командной строке выполните следующую команду добавить .deploy расширение к имени файла, который необходимо переименовать в предыдущем шаге данной процедуры.
ren MyWPFApp.exe MyWPFApp.exe.deploy
Примечание В этом примере предполагается наличие единственного файл доступен a .deploy расширение файла.Убедитесь, что вы переименуете все файлы в каталоге, ранее имевший .deploy расширение имени файла.
В командной строке выполните следующую команду подписать манифест развертывания.
mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Примечание В этом примере предполагается, что подписи манифеста с помощью .pfx файл проекта.Если не подписи манифеста, можно снять –cf параметр, используемый в данном примере.Если подписи манифеста с сертификатом, который требуется пароль, укажите –password параметр, как показано в следующем примере:For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – passwordPassword.
После завершения этих шагов можно переместить публикованные файлы в расположение, из которого нужно пользователям устанавливать приложение.Если планируется обновление решения часто, то можно переместить эти команды в скрипт и запустить скрипт публиковать каждый раз, что новая версия.
См. также
Ссылки
Enabling Visual Styles
Командная строка Visual Studio и пакета Windows SDK
Основные понятия
Устранение неполадок, приводящих к определенным ошибкам в развертываниях ClickOnce