Практическое руководство. Публикация приложения 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
В строке меню выберите Проект,СвойстваProjectName, где ProjectName — имя проекта WPF.
Страницы свойств для проекта WPF отображаемых.
На вкладке Приложение выберите Просмотреть параметры Windows.
Файл app.manifest будет открыт в Редактор кода.
Открыть файл манифеста в проекте C#
В строке меню выберите Проект,СвойстваProjectName, где ProjectName — имя проекта WPF.
Страницы свойств для проекта WPF отображаемых.
На вкладке Приложение, запишите имя, отображаемое в поле очевидным. Это имя манифеста, связанный с проектом.
Примечание
Если Внедрить манифест с настройками по умолчанию или Создание приложения без манифеста отображаются в поле, наглядные стили не включены.Если имя файла манифеста отображается в поле очевидным, перейдите к следующему шагу в этой процедуре.
В списке Обозреватель решений выберите Показать все файлы ().
Эта кнопка отображаются все элементы проекта, включая те, которые были исключены и те, которые обычно скрыты. Файл манифеста отображается как элемент проекта.
Выполните построение и публиковать их решения. Дополнительные сведения о публикации, как решения, см. в разделе Практическое руководство. Публикация приложения 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.
Примечание
Оставшиеся действия выполняют следующие предположения о решении.
-
Имя решения 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 – password Password).
В командной строке выполните следующую команду, чтобы добавить расширение .deploy на имя файла, который необходимо переименовать в предыдущем шаге данной процедуры.
ren MyWPFApp.exe MyWPFApp.exe.deploy
Примечание
В этом примере высказывать только один файл имеет расширение файла .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 – password Password.
После выполнения этих шагов, можно переместить публикованные файлы в расположение, из которого требуется пользователям установить приложение. Если планируется обновление решения часто, можно переместить эти команды в скрипт и запустите скрипт каждый раз, когда вы публикуете новой версии.
См. также
Ссылки
Командная строка Visual Studio
Основные понятия
Устранение неполадок, приводящих к определенным ошибкам в развертываниях ClickOnce