2011-01-07 5 views
1

Ich habe eine vs2010-Lösung, die eine ASP.Net 4-Website und ein Silverlight 4-Projekt enthält.Verstehe ich grundsätzlich falsch, wie Silverlight läuft? (Debug-Probleme)

Die Website ist mit dem Silverlight-Projekt ('Map') verknüpft und der ClientBin-Ordner enthält eine Map.xap-Datei.

Das Map-Projekt ist sehr einfach. Es enthält die Standarddateien App.xaml und App.xaml.cs. Die MainPage.xaml Datei sieht wie folgt aus

<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> 

der Code-behind für das wie folgt aussieht:

public partial class MainPage : UserControl 
{ 

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

} 

In einer der Seiten der Website ich das Standardobjekt haben deutete auf meine Silverlight xap

Wenn ich die Website starte, sehe ich mein Hintergrundbild auf dem Canvas im Silverlight-Fenster, also weiß ich, dass es in diesem Se funktioniert nse. Ich kann jedoch keine Breakpoints brechen, die in der Datei MainPage.xaml.cs (in IE) festgelegt sind. Ich habe die korrekten Einstellungen für das Silverlight-Debugging überprüft.

Und sehen Sie, dass Ausnahme, die ich in den MainPage-Konstruktor werfen? Ich sehe das auch nicht. In der Tat scheint nichts, was ich da reingesteckt habe, überhaupt zu laufen, aber ich weiß, dass das Xaml rendert, weil ich meinen Leinwandhintergrund sehen kann. Was bekomme ich hier nicht?

Antwort

2

Ich habe zu diesem Problem geführt und die Art, wie wir es gelöst haben, war, den Prozess manuell an den Debugger anzuhängen.

+0

Das mache ich immer. Ich schließe an meinen aspnet-Prozess für das Debugging an. – Erix

+0

Das ist welcher Prozess? Die Silverlight App wird nicht im Aspnet-Prozess ausgeführt. –

+0

@SP: Ist das auch der Fall, wenn Sie das tun? – VoodooChild

1

Haben Sie Silverlight-Debugging in den ASP.NET-Website-Projekteigenschaften unter Web -> Debugger aktiviert?

+0

ja das habe ich gemacht – Erix

1

Haben Sie versucht, den Cache Ihres Browsers zu löschen? Ich weiß, dass wenn ich FireFox verwende, es das XAP zwischenspeichert und der Visual Studio Debugger die richtigen Symbole nicht finden kann.

Wenn dies das Problem ist, dann ist hier ein netter Trick, um das Problem zu umgehen, von einem anderen Stackoverflow post gestohlen. Fügen Sie das einfach in Ihre ASPX-Seite ein, die die silverlight App hostet.

<param name="source" value="ClientBin/App.xap?<%= DateTime.Now.Ticks %>" /> 
2

Für was es wert ist, haben Sie es richtig, etwas ist nur nicht richtig verkabelt. Wenn Sie es noch nicht getan haben, erstellen Sie einfach eine neue Silverlight App von VS2010 und beginnen Sie erneut, um sicherzustellen, dass alles richtig verkabelt ist. Sie können absolut anhängen, um zu verarbeiten, aber Sie sollten nicht "müssen".

VS2010 legt ein Raster, keine Leinwand, als Standardbasis fest. Das ist egal, du kannst beides verwenden, aber da ich dort eine Leinwand sehe, frage ich dich, wie du das Projekt erstellt hast. Wenn Sie einem Buch usw. folgen, wurde möglicherweise ein Teil des Prozesses verpasst.

Stellen Sie sicher, dass Sie unter den Webprojekteigenschaften auf der Registerkarte Silverlight-Anwendungen suchen und sicherstellen, dass das Raster das Silverlight-Projekt als "Karte", Pfad im Web als "ClientBin" und konfigurationsspezifische Ordner als " Nein".

Ich glaube nicht, dass Sie etwas besonderes im Silverlight-Projekt benötigen, aber stellen Sie sicher, dass es im DEBUG-Modus, nicht im RELEASE-Modus, eingerichtet ist. (Ich habe diesen dummen Fehler vorher gemacht). Stellen Sie es auch für Any CPU ein.

Schließlich weiß ich, dass Sie sagten, Sie verwenden IE, aber nur sicher sein, es ist nicht FF, etc. FF kann auf Debug SL-Anwendungen eingerichtet werden, aber es dauert ein zwicken zuerst.

+0

Was ist der Tipp, den Sie für FF-Debugging SL-Anwendungen sprechen? –

+0

http://timheuer.com/blog/archive/2010/08/16/enable-silverlight-debugging-in-firefox-visual-studio.aspx –