Ich habe eine funktionierende Lösung für WP8.0. Aber ich musste upgraden, um auf WNS zugreifen zu können. Es ist mir gelungen, WNS zu der Upgrade-Lösung im Hauptmenü hinzuzufügen. Aber nach dem Upgrade auf wp8.1 (silverlight) hatte ich einige seltsame Fehler, die nur zur Laufzeit auftreten. Als Beispiel in der folgenden Usercontrol geschieht:XAML Parse-Fehler bei Interaktion triggert wp8.1 (silverlight)
<UserControl
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"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
xmlns:View="clr-namespace:ShieldGenerator.View"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
x:Class="ShieldGenerator.View.MoveableShieldGear"
mc:Ignorable="d"
Canvas.Left="{Binding Gear.x}" Canvas.Top="{Binding Gear.y}" Canvas.ZIndex="{Binding Gear.z}" >
<Path Data="{Binding Gear.Path}" Fill="{Binding Gear.Color}" Stretch="Fill" UseLayoutRounding="False" Height="{Binding Gear.Height}" Width="{Binding Gear.Width}" Opacity="{Binding Gear.Opacity}">
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Gear.Scale}" ScaleY="{Binding Gear.Scale}" CenterX="{Binding Gear.CenterX}" CenterY="{Binding Gear.CenterY}"/>
<RotateTransform Angle="{Binding Gear.Rotate}" CenterX="{Binding Gear.CenterX}" CenterY="{Binding Gear.CenterY}" />
<SkewTransform AngleX="{Binding Gear.SkewX}" AngleY="{Binding Gear.SkewY}" CenterX="{Binding Gear.CenterX}" CenterY="{Binding Gear.CenterY}" />
</TransformGroup>
</Path.RenderTransform>
<i:Interaction.Triggers>
<i:EventTrigger EventName="ManipulationStarted">
<cmd:EventToCommand Command="{Binding MouseDownGearCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
<i:EventTrigger EventName="ManipulationDelta">
<cmd:EventToCommand Command="{Binding MouseGearMoveCommand, Mode=OneWay}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
<i:EventTrigger EventName="ManipulationCompleted">
<cmd:EventToCommand Command="{Binding MouseUpGearCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
<i:EventTrigger EventName="DoubleTap">
<cmd:EventToCommand Command="{Binding DoubleTapCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Path>
</UserControl>
Wo die Ereignisse meiner VM binded sind, werden die Befehle in der VM als RelayCommand
definiert. Wie bereits erwähnt, war dies eine funktionierende Lösung ohne Fehler. Ich habe aktualisiert und immer noch keine Fehler beim Kompilieren. Ich habe keinen Code hinter dem Blick, aber der Fehler tritt in der Zeile darunter mit ERROR markiert (in der * .g.cs Datei)
namespace ShieldGenerator.View {
public partial class MoveableShieldGear : System.Windows.Controls.UserControl {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Windows.Application.LoadComponent(this, new System.Uri("/ShieldGenerator;component/View/MoveableShieldGear.xaml", System.UriKind.Relative)); //ERROR
}
}
}
Der Fehler in <i:Interaction.Triggers>
in dem obigen XAML-Code auf die Zeile bezieht sich .
Ich habe versucht, mehrere Pakete ohne Erfolg zu deinstallieren und zu installieren. Ich habe versucht, herum zu suchen, und fand Ideen für die Aufnahme Mode=Oneway
, und einige Fehler im XAML-Parser. Ich bin völlig am Ende.
Hoffe jemand kann helfen!
Der Fehler
Dieser Fehler überall, wo ich i:interaction
angezeigt verwenden. Ich habe nach einer Möglichkeit gesucht, eine wp8.1-Version von System.Windows.Interactivity
zu finden, aber ich war dazu nicht in der Lage. Ich habe deshalb dafür gesorgt, dass die MVVMLight Tools aktualisiert werden:
Informationen auf der Grundlage der Kommentar
Unterschied in neuen app.config
ist eine neue Ergänzung.
Unterschied in neuen WMAppManifest.xml
NotificationService = "WNS" Weil ich es einrichten und es funktioniert
NEW
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_MEDIALIB_AUDIO" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
<Capability Name="ID_CAP_MEDIALIB_PHOTO" />
</Capabilities>
OLD
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_MEDIALIB_AUDIO" />
<Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
<Capability Name="ID_CAP_MEDIALIB_PHOTO" />
<Capability Name="ID_CAP_PUSH_NOTIFICATION" />
<Capability Name="ID_CAP_IDENTITY_USER" />
</Capabilities>
ich die Fähigkeiten entfernt habe ich tat nicht mehr benutzen. Und fügte hinzu in den neuen Package.appxmanifest
für WP8.1
<Capabilities>
<Capability Name="internetClientServer" />
<Capability Name="musicLibrary" />
<Capability Name="picturesLibrary" />
ich je die andere Frage habe auch Probleme mit dem AGHost.exe, aber ich habe nicht versucht, es zu löschen, wie ich das unten dachte, war obligatorisch .
<Applications>
<Application Id="xd82c080dy903dy47f4yba02y5a36d745c72bx" Executable="AGHost.exe" EntryPoint="StartUp/FirstPage.xaml">
<m3:VisualElements DisplayName="XXXXX" Square150x150Logo="Assets\SquareTile150x150.png" Square44x44Logo="Assets\Logo.png" Description="XXXX" ForegroundText="light" BackgroundColor="#464646" ToastCapable="true">
<m3:DefaultTile Square71x71Logo="Assets\SquareTile71x71.png">
</m3:DefaultTile>
<m3:SplashScreen Image="Assets\Splashscreen.png" />
</m3:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClientServer" />
<Capability Name="musicLibrary" />
<Capability Name="picturesLibrary" />
</Capabilities>
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>AgHostSvcs.dll</Path>
<ActivatableClass ActivatableClassId="AgHost.BackgroundTask" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
Kein anderes Problem in dieser Datei gefunden. AssemblyInfo.cs
und AppManifest.xml
sind gleich.Mit Blick auf den Referenzordner die Referenzen in Ordnung scheint, und sind für wp8.1 aktualisiert (jene, die könnte)
Extra-
Wenn ich kopieren Sie die XAML-Code (dh Pfad mit Interaktion) in eine andere Seite, die gearbeitet . Dann scheitert es mit dem gleichen Fehler, während der XAML-Parsing für die Seite, die ohne das Snippet funktioniert.
Neues Update Es scheint, dass bei meinem Upgrade etwas in den Lösungen und den Projekten beschädigt wurde. Das Folgende, das ich gefunden habe, ist, dass ich den Code bekommen und in einem neuen Projekt arbeiten kann. Der Code funktioniert, wenn ich das Projekt ausführen und bereitstellen.
Wenn ich auf der anderen Seite das gleiche Projekt verwenden, das bei der Bereitstellung funktionierte, navigieren Sie jetzt von einem anderen Projekt zu diesem Projekt "/BC_Creator;component/MainPage.xaml"
Dann tritt der obige Fehler erneut auf. Meine einzige Idee ist jetzt, zu versuchen, völlig neue Projekte zu erstellen und den Code in neue Dateien zu kopieren. Seit dem Importieren scheint es immer noch nicht zu funktionieren.
WTF passiert hat: S
Was ist der tatsächliche Fehler? –
@ChrisW. hinzugefügte Beschreibung des Fehlers, Position 24 ist das '.' in der Zeile' '. Ich kann die Fehlermeldung mit dem Debugger wegen eines anderen Problems nach dem Aktualisieren nicht extrahieren. Bezug nehmend auf Frage http://stackoverflow.com/questions/31432007/upgrading-wp8-to-wp8-1-silverlight-debugger-cannot-belaunched –
JTIM
Uh, ok ... so durch Ihre Linie zählen und die Erwähnung von System.Windows.ni.dll in der Ausnahme, ich werde sagen, dass es wahrscheinlich nichts mit diesen Auslösern zu tun hat, oder ihre Interaktionen/Namespaces etc. Ich würde fragen, könnten Sie möglicherweise einige Projektreferenzen in wie Ihre WMAppManifest verloren haben .xaml, die manuell hinzugefügt werden müssen? –