Я в корне не понимаю, как работает Silverlight? (проблемы отладки) - PullRequest
1 голос
/ 07 января 2011

У меня есть решение vs2010, содержащее веб-сайт ASP.Net 4 и проект Silverlight 4.

Веб-сайт связан с проектом Silverlight («Карта»), а папка ClientBin содержит карту.xap файл.

Проект Map очень прост.Он содержит файлы App.xaml и App.xaml.cs по умолчанию.Файл MainPage.xaml выглядит следующим образом

<UserControl x:Class="Map.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:DesignHeight="380" d:DesignWidth="800">

<Canvas x:Name="MainCanvas" Width="800" Height="380">
    <Canvas.Background>
        <ImageBrush ImageSource="map.png" Stretch="None"/>
    </Canvas.Background>
</Canvas>

Код для этого выглядит следующим образом:

public partial class MainPage : UserControl
{

        public MainPage()
        {
            InitializeComponent();
            throw new Exception();
        }

}

Внутри одной из страниц веб-сайта у меня естьобъект по умолчанию, указывающий на мой Silverlight xap

Когда я запускаю веб-сайт, я вижу свое фоновое изображение на холсте в окне Silverlight, поэтому я знаю, что оно работает в этом смысле.Тем не менее, я не могу сломать ни одной точки останова, установленной в файле MainPage.xaml.cs (в IE).Я проверил правильные настройки для отладки Silverlight.

И видите, что я выкидываю исключение в конструкторе MainPage?Я тоже этого не вижу.На самом деле, ничего, что я вставляю туда, кажется, вообще не запускается, но я знаю, что xaml рендерит, потому что я могу видеть свой фон холста.Что я не получаю здесь?

Ответы [ 4 ]

2 голосов
/ 08 января 2011

Что бы это ни стоило, вы поняли это правильно, что-то просто неправильно подключено.Если вы этого еще не сделали, просто создайте новое приложение Silverlight из VS2010 и начните сначала, чтобы убедиться, что все подключено правильно.Вы можете абсолютно присоединиться к процессу, но вам не нужно «приходиться».

VS2010 ставит сетку, а не холст, в качестве базы по умолчанию.Это не имеет значения, вы можете использовать любой из них, однако, так как я вижу там холст, это заставляет меня задаться вопросом, как вы создали проект для начала.Если вы следите за книгой и т. Д., Возможно, что какая-то часть процесса была пропущена.

Убедитесь, что в свойствах веб-проекта вы просматриваете вкладку Приложения Silverlight и убедитесь, что в сетке перечисленыПроект Silverlight имеет вид «Карта», путь в Интернете должен быть «ClientBin», а для папок определенной конфигурации - «Нет».

Я не думаю, что вам нужно что-то особенное в проекте Silverlight, но ОБЯЗАТЕЛЬНО убедитесь, что он настроен на сборку в режиме DEBUG, а не на RELEASE.(Я сделал эту глупую ошибку раньше).Также установите его для любого процессора.

Наконец, я знаю, что вы сказали, что используете IE, но просто убедитесь, что это не FF и т. Д. FF может быть настроен для отладки приложений SL, но сначала он требует настройки.

2 голосов
/ 07 января 2011

Я столкнулся с этой проблемой, и мы решили, как вручную подключить процесс к отладчику.

1 голос
/ 07 января 2011

Вы пытались очистить кеш вашего браузера?Я знаю, что когда я использую FireFox, он кэширует XAP, и отладчик Visual Studio не может найти правильные символы.

Если это проблема, то здесь есть хитрый способ обойти эту проблему, украденныйиз другого сообщения Stackoverflow .Просто поместите это на страницу ASPX, на которой размещено приложение silverlight.

<param name="source" value="ClientBin/App.xap?<%= DateTime.Now.Ticks %>" />
1 голос
/ 07 января 2011

Включили ли вы отладку Silverlight в свойствах проекта веб-сайта ASP.NET в разделе Web -> Отладчики?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...