Почему приложение Silverlight показывает пустой экран браузера при создании из экспортированного шаблона? - PullRequest
2 голосов
/ 12 марта 2010

Я создал приложение silverlight (без веб-сайта) с именем TestApp , с одним TextBox:

<UserControl x:Class="TestApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
        <TextBlock Text="this is a test"/>
  </Grid>
</UserControl>

Я нажимаю F5 и вижу «это тест» в моем браузере (Firefox).

Я выбираю Файл | Шаблон экспорта | назовите его TestAppTemplate и сохраните it.

Я создаю новое приложение silverlight на основе приведенного выше шаблона.

MainPage.xaml имеет точный тот же XAML, что и выше.

Я нажимаю F5 и вижу пустой экран в моем браузере.

Я смотрю на источник HTML обоих из них, и они идентичны .

Все Я сравнил в обоих проектах идентично .

Что мне нужно сделать, чтобы приложение Silverlight, созданное из моего экспортированного шаблона, не показывало пустой экран?

(создание приложения WPF из экспортированного шаблона вроде этого работает нормально)

1 Ответ

2 голосов
/ 12 марта 2010

Инструмент «Шаблон экспорта» не понимает свойства проекта <XapFilename> и <SilverlightAppEntry>. Следовательно, при создании шаблона он не помещает маркер замены ни в одно из этих свойств.

Если вы посмотрите в папку bin \ debug проекта, который вы создали из шаблона, вы увидите, что файл Xap имеет то же имя, что и исходный проект, из которого вы создали шаблон, а не имя нового проекта, который вы создали , Само по себе это не является большой проблемой, однако внутри вы обнаружите, что точка входа в приложение также использует исходное пространство имен для исходного проекта шаблона. Тем не менее фактическая точка входа в приложение правильно размещена в пространстве имен нового проекта. Точка входа не может быть найдена, когда тестовая страница загружает Xap в плагин. В IE с включенной отладкой вы получаете диалоговое окно с сообщением об ошибке, в Firefox я подозреваю, что в консоли ошибок что-то есть, если вы откроете это.

Как исправить

Прежде всего, при создании шаблона не позволяйте VS автоматически импортировать его (в любом случае это всего лишь копия файла).

После создания шаблона найдите файл zip шаблона в папке «Documents \ Visual Studio 2008 \ My Exported Templates». Извлеките файл .csproj.

Измените свойство <XapFilename> на: -

<XapFilename>$safeprojectname$.xap</XapFilename>

и свойство <SilverlightAppEntry> для: -

<SilverlightAppEntry>$safeprojectname$.App</SilverlightAppEntry>

положить .csproj обратно в Zip-файл.

Теперь вы можете скопировать Zip-файл в папку «Documents \ Visual Studio 2008 \ Templates \ Project Templates \ Visual C # \ Silverlight».

Шаблон должен появиться при выборе Visual C # \ Silverlight в диалоговом окне нового проекта.

Создайте проект, и он должен работать правильно с F5.

...