Windows Presentation Foundation Windows Media Center. Общие сведения о размещаемых приложениях
Обновлен: Ноябрь 2007
WMC (Microsoft Windows Media Center) является приложением мультимедиа, которое устанавливается с Windows Vista Home Premium Edition, Windows Vista Ultimate и с Microsoft Windows XP Media Center Edition 2005. WMC позволяет пользователям использовать широкий набор аудиовизуальной информации, включая телевидение (цифровое и высокого разрешения), DVD-диски, музыку, видео, радио и фотографии, а также управлять им.
Кроме того, WMCперсональный компьютер (ПК) можно использовать для просмотра и воспроизведения мультимедиа. Это называется взаимодействие с пользователем 2', так как пользователи работают с WMC на ПК с помощью мыши, клавиатуры и монитора.
Однако ПКWMC можно настроить для поддержки удаленного управления или удаленного ввода данных с клавиатуры. При такой схеме пользователи не обязаны находиться в WMCПК для работы с ним. Это называется взаимодействие с пользователем 10', и соответствует конфигурациям WMC, включающим большие мониторы и традиционную домашнюю развлекательную технику, например телевизоры и звуковые системы.
Основная функциональная возможность, предлагаемая WMC, состоит из набора приложений для управления и воспроизведения мультимедиа. Однако WPF можно использовать, чтобы создавать собственные настраиваемые приложения для версий Windows VistaWMC.
В этом разделе дается вводная информация по разработке приложений WPF для WMC, охватывающая следующие темы:
Построение и развертывание простого игрового приложения WPF.
Задание как 2'-, так и 10'- взаимодействия с пользователем WMC.
Настройка элементов управления WPF для поддержки WMC.
Использование новых особых элементов управления WMC для WPF.
Усиление поддержки в .NET Framework.
Интеграция с WMC через управляемые API-интерфейсы.
Использование Visual Studio 2005 для улучшения процесса разработки.
Подробные сведения о разработке приложений для WMC см. в разделе Пакет средств разработки программного обеспечения SDK для Windows Media Center (SDK WMC).
В этом разделе содержатся следующие подразделы.
- Размещение приложений WPF в WMC
- Запуск приложений WPF для WMC
- Взаимодействие с пользователем WMC
- Обновление элементов управления WPF для WMC
- Дополнительные элементы управления WPF для WMC
- Использование библиотек классов среды .NET Framework 3.0
- Интеграция с API, управляемыми WMC
- Разработка в Visual Studio
- Установка приложений WPF для WMC
- Связанные разделы
Размещение приложений WPF в WMC
WPF дает возможность разработки двух типов приложений: автономных и размещенных в веб-обозревателе. Автономные приложения предоставляют для размещения содержимого приложения свои собственные окна и диалоговые окна. Существует два типа приложений, размещенных в веб-обозревателе Internet Explorer 7: свободные приложения XAML и приложения XBAP. Однако Internet Explorer 7 ничего не знает о WPF; чтобы включить возможность размещать содержимое WPF в Internet Explorer 7, WPF предоставляет приложения, как, например, содержащий прокси Internet Explorer. Этот прокси может размещать содержимое WPF от имени других приложений; он построен с помощью той же общей инфраструктуры Windows, которую Internet Explorer сам знает, как разместить.
WMC также способен размещать этот прокси и, следовательно, может разместить приложения WPF в веб-обозревателе. Это означает, что можно воспользоваться преимуществами платформы разработки приложений WPF в целом, в том числе навигацией и средствами безопасности приложений, размещенных в веб-обозревателе.
В остальной части этого раздела используется приложение WordGame! для WMC (см. раздел Пример игры WordGame! для Windows Media Center).
Запуск приложений WPF для WMC
Приложение WordGame! состоит из следующих трех файлов (минимум для всех XBAP):
wordgamewmc.exe. XBAP.
wordgamewmc.exe.manifest. Манифест приложения ClickOnce.
wordgamewmc.xbap. Манифест развертывания ClickOnce.
XBAP загружаются с помощью ClickOnce, требующего, чтобы приложение было сконфигурировано при помощи файлов манифеста приложения и развертывания (см. раздел Построение приложения WPF). В частности, XBAP запускается при просмотре или при двойном щелчке его файла .xbap. При запуске ClickOnce по умолчанию загружает приложение от имени WPF, после чего WPF запускает Internet Explorer и переходит в приложение, как показано на следующем рисунке:
Тем не менее, для запуска приложения WMC пользователи должны просмотреть файл связей WMC (.mcl) или дважды щелкнуть его. Файл .mcl ― это файл конфигурации XML, который настраивается в Windows так, чтобы открываться в узле WMC (Ehshell.exe) при просмотре или двойном щелчке (см. раздел Пакет WMC SDK).
Примечание. |
---|
.Файлы .mcl весьма удобны в процессе разработки, но их не рекомендуется использовать в качестве механизма для установки и запуска приложений WMC. См. раздел Установка приложений WPF для WMC. |
При открытии файла .mcl узел WMC будет анализировать и обрабатывать инструкции конфигурации, содержащиеся в файле .mcl, из которых наиболее важной является имя открываемого приложения. Этот механизм используется для создания файла .mcl, настроенного для запуска XBAP:
<application url="https://localhost/wordgamewmc/wordgamewmc.xbap" />
Когда узел WMC обработает этот файл .mcl, узел WMC произведет переход к файлу .xbap. В результате ClickOnce запускает приложение в самом узле WMC, как показано на следующем рисунке:
Примечание. |
---|
Если требуется, чтобы WMC разместил свободное приложение XAML, необходимо сконфигурировать файл .mcl файл с помощью файла .xaml следующим образом: |
<application
url="https://localhost/loosexamlapplication/loosexamlpage.xaml" />
Без каких либо изменений XBAP и с добавлением единственного файла конфигурации WMC может размещать приложение WPF, как есть.
Однако взаимодействие с пользователем WMC довольно специфическое, и для обеспечения целостности и стиля приложения WMCXBAP должны разрабатываться с учетом взаимодействия с пользователем WMC. В остальной части этого раздела рассматриваются ключевые аспекты взаимодействия с пользователем WMC и способы построения чувствительных к нему XBAP.
Взаимодействие с пользователем WMC
Обеспечение целостности взаимодействия с пользователем является основной частью разработки любых приложений. Относительно пользователей WMC приложение должно быть целостным в следующих случаях:
Тема. Общий стиль пользовательского интерфейса приложения.
Структура Размер и размещение элементов управления.
Навигация. Использование клавиатуры, мыши и удаленного управления для навигации в пользовательском интерфейсе приложения.
Более детальное описание взаимодействия с пользователем WMC см. в Пакет WMC SDK; в следующих разделах дается обобщенный обзор.
Тема
Как видно из следующего рисунка, тема WMC имеет несколько разных элементов:
Наиболее выделяющиеся из них ― синий прозрачный фон и большие скругленные подсвечиваемые шрифты. В результате создается внешний вид, который может быть легко различим как 2'-пользователями, находящимися непосредственно перед монитором, так и 10'-пользователями, которые могут быть на любом расстоянии от телевизора. Хотя приложения WPF должны следовать этому общему подходу к внешнему виду, WMC изначально не предоставляет эту информацию для использования в приложениях WPF. К счастью, WPF предоставляет широкий набор компонент для художественного и тематического оформления, который при желании может быть инструментарием для простого повторения внешнего вида WMC. Кроме того, можно использовать WPF для создания полностью нового и визуально богатого взаимодействия с пользователем, хотя соглашения о структуре и навигации все же следует учитывать.
Например, чтобы создать фон для страниц в стиле WMC, нужно выполнить следующее:
<Application
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="HomePage.xaml">
<!--MediaCenterThemes.xaml-->
<Application.Resources>
<LinearGradientBrush x:Key="PageGlassyBackground" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#ff2B6680" Offset="1.5" />
<GradientStop Color="#569dc2" Offset="0" />
</LinearGradientBrush>
...
</Application.Resources>
</Application>
Поскольку темы обычно состоят из нескольких элементов, следует рассмотреть возможность использования словаря настраиваемых ресурсов для инкапсуляции стилей темы WMC:
<ResourceDictionary>
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" />
<LinearGradientBrush x:Key="PageGlassyBackground" StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="#ff2B6680" Offset="1.5" />
<GradientStop Color="#569dc2" Offset="0" />
</LinearGradientBrush>
...
</ResourceDictionary>
Чтобы включить словарь ресурсов в приложение, необходимо настроить элемент Ресурсы приложения определения приложения для указания файла .XAML словаря ресурсов:
<Application
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
StartupUri="HomePage.xaml">
<!--MediaCenterThemes.xaml-->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MediaCenterTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
На следующем рисунке показано обновленное приложение WordGame! с полным дополнением стилей и ресурсов для темы WMC.
WMC не ограничивает разработку тем приложения, которые включают элементы, специфичные для приложения и бренда. Однако существует несколько аспектов темы приложения, которые следует учитывать при разработке любого приложения для взаимодействия с пользователем WMC:
Цвета, подходящие для телевидения: Не следует использовать яркие цвета, которые могут быть подвержены искажению (например зеленый, красный).
Контрастность: Чтобы сохранить текст визуально различимым на фоне, убедитесь, что выбор основного и фонового цвета для визуальных элементов имеет соответствующий уровень контрастности.
Шрифты: Можно повысить удобочитаемость, используя шрифты большого размера без засечек. Кроме того, удаление ненужных слов из содержимого может способствовать созданию текстовых областей, которые легко читать.
Кнопки: Рекомендуется сохранять простой внешний вид кнопок.
Изображения: При создании изображений необходимо учитывать размер и качество отображения и объем загрузки.
Анимация: Рекомендуется использовать анимацию при необходимости.
Подробные сведения по темам приложений WMC см. в разделе Пакет WMC SDK.
Структура
Одна неочевидная проблема возникает, когда пользователь проводит мышью над узлом WMC, что заставляет узел WMC показывать дополнительные элементы пользовательского интерфейса для навигации при помощи мыши, как показано на следующем рисунке:
На этом рисунке видно, что левая верхняя и правая нижняя части приложения Пользовательский интерфейс покрыты рамкой навигации. В этом случае можно обновить структуру Пользовательский интерфейс, чтобы передавать пользовательский интерфейс навигации в учетную запись. Для WordGame! это вызывает перемещение заголовка приложения в правую часть интерфейса пользователя и добавление строки высотой 50 точек в конец элемента Grid, в котором находится содержимое домашней страницы:
<Grid>
...
<Grid.RowDefinitions>
<RowDefinition Height="5" />
<RowDefinition Height="Auto" />
<RowDefinition Height="20" />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<!-- Game title -->
<TextBlock ... TextAlignment="Right">Word Game!</TextBlock>
...
</Grid>
На следующем рисунке показан результат добавления этих строк.
По этой причине XBAP для WMC должен учитывать различные варианты поведения макета и целостности WMC.
Основные соглашения о структуре, которые нужно соблюдать, включают:
Макет приложения: Макет приложения должен быть простым и целостным, чтобы облегчить пользователям разработку и сохранить схожесть с пользовательским интерфейсом приложения.
Структура WMC: Структура приложений должна сохранять там, где это имеет смысл, согласованность с основным взаимодействием с пользователем WMC. Это дает возможность пользователям, знакомым с WMC, быстрее привыкнуть к приложению.
Видео: Если приложение отображает видео с помощью WMC под управлением API-интерфейсы, то WMC воспроизведет видео в левой нижней части экрана. Следовательно, пользовательский интерфейс должен быть размещен для добавления в учетную запись.
Разрешение: Пользовательский интерфейс и структура должны поддерживать разрешение 1024x768. WPF предлагает поддержку структуры как при установлении разрешения 1024x768, так и для гарантии сохранения структуры пользовательского интерфейса при изменении его размеров (дополнительные сведения см. в разделе Система макета).
Дополнительные сведения по структуре WMC см. в Пакет WMC SDK.
Навигация
По существу, тема и макет определяют, как организованы элементы управления, составляющие пользовательский интерфейс. С другой стороны, навигация определяет, как пользователь попадает в эти элементы управления и перемещается между ними.
Если элемент управления в текущий момент используется пользователем для ввода данных, то говорят, что в нем находится фокус. Чтобы поместить фокус в определенный элемент управления при отображении страницы приложения XBAP, необходимо использовать разметку:
<!-- Set focus on guess character text box -->
<Page ... FocusManager.FocusedElement="{Binding ElementName=guessedChar}">
...
</Page>
Это следует делать для поддержки как 2', так и 10' режима работы.
Чтобы разрешить пользователям навигацию по элементам управления в приложении WMC в режимах 2' и 10', приложение должно обрабатывать навигацию с помощью мыши, клавиатуры (подсоединенной или удаленной) и удаленного управления. По умолчанию навигация с помощью мыши и клавиатуры одинакова для любого приложения WPF, а именно:
Щелчок по элементам управления перемещает в них фокус.
Перемещение по элементам управления с помощью клавиши табуляции перемещает фокус.
Задание свойства IsDefault кнопки означает, что при нажатии клавиши ВВОД по умолчанию будет нажата эта кнопка.
Задание свойства IsCancel кнопки, означает, что эта кнопка будет по умолчанию нажата при нажатии клавиши Esc.
Для поддержки удаленного управления необходимо поддерживать навигацию направленного действия, которая означает, что пользователи могут перемещать фокус элементов управления с помощью нажатия кнопок «вверх», «вниз», «влево» и «вправо» на пульте дистанционного управления. Не нужно писать код для поддержки навигации направленного действия, поскольку используется определенное подмножество элементов управления WPF.
Обновление элементов управления WPF для WMC
Хотя WPF предлагает множество элементов управления, только подмножество этих элементов управления подходит для использования в приложениях WMC по умолчанию. Определяющим фактором является возможность навигации, управления и навигации с помощью удаленного управления. На следующем рисунке показано подмножество элементов управления WPF, поддерживающих ввод с помощью дистанционного управления (используя стили WMC):
Эти ограничения не влияют на использование других элементов управления WPF, хотя необходимо будет выполнить дополнительные действия, чтобы заставить их работать для WMC. Например, рассмотрим элемент управления Slider, показанный на следующем рисунке размещенным в WMC:
По умолчанию Slider можно отображать и переходить в него с помощью мыши, клавиатуры или дистанционного управления. Однако в Slider нельзя переходить с помощью дистанционного управления ― Slider интерпретирует нажатие кнопок «вверх», «вниз», «влево» и «вправо» как попытку увеличения или уменьшения значения Slider.
В таких случаях одним из способов решения является создание составного элемента управления, содержащего требуемый элемент управления плюс дополнительные элементы, поддерживающие дистанционное управление. Например, Slider может быть использоваться двумя кнопками, для уменьшения значения Slider и для увеличения значения Slider, с помощью следующего кода:
<Page x:Class="SliderPage"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<!-- Custom Slider -->
<StackPanel Margin="50" Orientation="Horizontal" VerticalAlignment="Top">
<Button
Name="decrementButton"
Click="decrementButton_Click"
Margin="10"
FontSize="10"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Width="40" Height="40">
-
</Button>
<Slider
Name="slider"
Focusable="False"
Width="100" Margin="0,15,0,0"
Minimum="0" Maximum="10" Value="50"
Interval="1" TickFrequency="1" TickPlacement="BottomRight" />
<Button
Name="incrementButton"
Click="incrementButton_Click"
Margin="10"
FontSize="10"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Width="40" Height="40">
+
</Button>
</StackPanel>
</Page>
using System.Windows;
using System.Windows.Controls;
public partial class SliderPage : System.Windows.Controls.Page
{
//</SnippetSliderPageCodeBehind1>
public SliderPage()
{
InitializeComponent();
}
void decrementButton_Click(object sender, RoutedEventArgs e)
{
this.slider.Value--;
}
void incrementButton_Click(object sender, RoutedEventArgs e)
{
this.slider.Value++;
}
}
Результат показан на следующем рисунке.
Дополнительные элементы управления WPF для WMC
Другим проблематичным элементом управления является TextBox, который показан на следующем рисунке. Используя дистанционное управление, нельзя вводить символы в TextBox. Все, что требуется ― это элемент, дающий возможность пользователю дистанционного управления выбирать один или нескольких символов. Подобный технический прием уже используется в мобильных устройствах, в которых недоступная из-за своих размеров полноценная клавиатура заменяется отображаемой в пользовательском интерфейсе клавиатурой для выбора необходимых символов.
В данном примере для приложений WPF, предназначенных для WMC, включается элемент управления виртуальной клавиатуры, представленный на следующем рисунке:
Это реализуется классом SoftKeyboardTextBox в сборке Keyboard.dll, которая поставляется с примером и расположена в пространстве имен MCEControls. Для его использования:
Добавьте ссылку на сборку Keyboard, поставляемую вместе с MCEControls.
Добавьте к сборке в содержимом объявление пространства имен XML.
Добавьте XAML для объявления и настройки SoftKeyboardTextBox.
Результат показан на следующем рисунке:
<Page
...
xmlns:MCEControls="clr-namespace:MCEControls;assembly=Keyboard" >
...
<MCEControls:SoftKeyboardTextBox
Name="guessedChar"
Grid.Column="0"
Margin="0,0,5,0"
Width="80"
MaxLength="1" />
...
</Page>
Использование библиотек классов среды .NET Framework 3.0
Приложение WPF для WMC не ограничивается элементами управления. В приложении WPF можно также использовать весь объем .NET Framework для получения дополнительных функциональных возможностей, что позволяет использовать один и тот же код для автономных или размещаемых в веб-обозревателе приложений WPF.
Например, код для сохранения и загрузки данных из приложения, размещенного в WMC, одинаков как для не-WMC приложений, так и для ограничений безопасности (см. раздел Безопасность Windows Presentation Foundation); в зависимости от того, откуда запущено приложение, будет определяться, сможет ли размещаемое приложение WMC производить запись на локальный диск.
В целях обеспечения безопасности приложение может использовать изолированное хранилище для сохранения файлов:
using System;
using System.ComponentModel;
using System.IO;
using System.IO.IsolatedStorage;
using System.Xml;
using System.Xml.Serialization;
...
public static PlayerScore Load()
{
try
{
// Load the playerscore.xml file from isolated storage
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Open, isf))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
return (PlayerScore)xmlSerializer.Deserialize(stream);
}
}
catch (FileNotFoundException ex)
{
return new PlayerScore();
}
}
public static void Save(PlayerScore playerScore)
{
// Save the playerscore.xml file to isolated storage
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Create, isf))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
xmlSerializer.Serialize(stream, playerScore);
}
}
Интеграция с API, управляемыми WMC
Приложения WPF для WMC можно также интегрировать с возможностями WMC через набор управляемых API-интерфейсы, установленных вместе с операционной системой и расположенных в двух сборках: Microsoft.MediaCenter.dll и Microsoft.MediaCenter.UI.dll.
Используя эти API-интерфейсы, можно выполнить интеграцию с широким спектром служб WMC, включая просмотр, настройку и воспроизведение мультимедиа. Дополнительные сведения см. в Пакет WMC SDK.
Одним из аспектов этих возможностей является дальнейшая интеграция возможностей пользователя приложения с WMC. Например, если приложение WPF должно уведомлять пользователя с помощью окна сообщения, может быть выведено нечто аналогичное следующему:
Однако внешний вид стандартного окна сообщения WPF противоречит возможностям WMC. К счастью, WMC под управлением API-интерфейсы предоставляет свои собственные окна сообщений в стиле WMC, которые можно использовать с помощью следующего кода:
using Microsoft.MediaCenter;
...
// Get media center host and show dialog box
MediaCenterEnvironment mce = Microsoft.MediaCenter.Hosting.AddInHost.Current.MediaCenterEnvironment;
mce.Dialog(msg, "WordGame!", DialogButtons.Ok, 1000, true);
Это вызовет диалоговое окно WMC, как показано в следующем примере:
Для более глубокого понимания WMC под управлением API-интерфейсы необходимо обратиться к Пакет WMC SDK.
Примечание. |
---|
Невозможно запустить XBAP, ссылающийся на WMC под управлением API-интерфейсы до тех пор, пока XBAP размещена в WMC. |
Разработка в Visual Studio
До сих пор в этом разделе рассматривались основные вопросы программирования, к которым необходимо обращаться при построении XBAP для WMC, в том числе:
Создание обычного приложения XBAP.
Использование файла .mcl для запуска XBAP в WMC.
Создание темы WMC для XBAP.
Создание ссылок на WMC под управлением API-интерфейсы.
Это темы, к которым скорее всего потребуется обратиться при построении каждого XBAP для WMC. Чтобы не создавать эти элементы каждый раз при построении XBAP для WMC, можно воспользоваться шаблоном проекта Media Center (WPF) для Microsoft Visual Studio 2005, установленного с Пакет WMC SDK.
Примечание. |
---|
Шаблоны проектов WMC устанавливаются только в том случае, когда установлены Visual Studio 2005 и "Fidalgo". |
Шаблон проекта приложения Media Center (WPF) по умолчанию создаст проект Visual Studio 2005, содержащий эти элементы.
Создание нового приложения Media Center (WPF):
Откройте Visual Studio 2005.
Выберите Microsoft Visual Studio | Файл | Новый | Проект | Visual C# | .NET Framework 3.0 | Приложение Media Center (WPF).
Ниже перечислены ключевые элементы, которые создаются шаблоном проекта по умолчанию:
Файл readme.txt включает некоторые полезные сведения о построении и отладке XBAP для WPF.
Ссылки на управляемые сборки WMC.
Файл MediaCenterTheme.XAML является словарем ресурсов, содержащим полный набор стилей WMC, которые применяются к странице Page1.XAML по умолчанию.
Файл .mcl создается вместе со стандартными выходными данными XBAP.
Обратите внимание, что существует аналогичный шаблон проекта для Microsoft Visual Basic.
Отладка проекта
Для отладки XBAP в узле WMC из Visual Studio 2005 необходимо выполнить следующие действия:
Щелкните правой кнопкой мыши на проекте в Обозревателе решений и выберите Свойства | Отладка.
Установите для параметра Запуск программы значение c:\windows\system32\presentationhost.exe.
Задайте для параметра Аргументы командной строки значение -debug.
Запустите приложение, выбрав Microsoft Visual Studio | Отладка | Начать отладку (или с помощью клавиши F5).
Дважды щелкните файл .mcl, который создается во время процесса построения ( \bin\debug\имя_сборки.mcl ).
Приложение, указанное в MCL-файле, будет запущено и размещено в WMC.
Установка приложений WPF для WMC
Одним из преимуществ использования WMC является его помощь при создании приложений Установщик Microsoft Windows (файлы .msi). .С помощью MSI-файлов довольно удобно распространять приложения WPFна клиентские компьютеры WMC.
Следующие шаги выполняются при создании простого приложения установщик Windows для WordGame!:
В Visual Studio 2005 щелкните правой кнопкой мыши на решении XBAP в Обозревателе решений и выберите команду Добавить | Новый проект.
В списке Типы проектов выберите Другие типы проектов | Установка и развертывание.
В списке Шаблоны выберите Установка проекта или Мастер установки (последний является руководством по начальной настройке создаваемого проекта установщик Windows).
Щелкните правой кнопкой мыши по новому проекту установщик Windows, выберите Добавить | Файл, а затем выберите следующие файлы:
WordGameWMC.mcl
WordGameWMC.exe
WordGameWMC.exe.manifest
WordGameWMC.xbap
WordList.txt
Keyboard.dll
Во вкладке Файловая система выберите Рабочий стол пользователя.
В списке файлов щелкните правой кнопкой мышки и выберите Создать ярлык для рабочего стола пользователя.
Выберите Папка приложения | WordGameWMC.mcl .
Постройте заново проект установщик Windows.
При построении проекта установщик Windows файл .msi создается в папке выходных данных построения. Затем он копируется на клиентский компьютер и выполняется для установки приложения. Установка по умолчанию создает папку, которая соответствует следующему формату:
c:\program files\CompanyName\ApplicationName\Application Files
Все файлы, которые были выбраны во время настройки проекта установщик Windows, копируются в эту папку вместе с любыми зависимыми сборками, выбранными проектом установщик Windows.
Кроме того, на рабочем столе размещается ярлык для WordGameWMC.mcl, дважды щелкнув по которому, можно запустить приложение в WMC.
Примечание. |
---|
Файл проекта приложения необходимо обновить вручную, чтобы гарантировать, что путь к XBAP-файлу, который добавляется к создаваемому MCL-файл, для установки указан точно. |
Эта установка ― пример, который можно использовать как основу создания установщик Windows для приложения WPF в WMC.
Для реальных приложений WPF в WMC способы установки могут отличаться.
Во-первых, приложение должно устанавливать файл HTML, который предоставляет ссылку на фактическое приложение WPF, расположенное на веб-сервере. Размещение на веб-сервере позволяет клиентскому компьютеру создавать, публиковать и приобретать новые версии приложения без необходимости переустановки приложения пользователем.
Во-вторых, не следует использовать файлы .mcl. Вместо этого следует создать установщик Windows, который вызывает WMCMediaCenter.RegisterApplicationAPI-интерфейс, или же запустить служебную программу командной строки RegisterMceApp.exe. Дополнительные сведения см. в разделе Пакет WMC SDK.
См. также
Основные понятия
Общие сведения о приложениях обозревателя на языке XAML Windows Presentation Foundation