2016-07-25 7 views
0

Wenn ich eine UWP-App im Debug-Modus starte, existiert ApplicationData.UWP-Lauf im Freigabemodus gibt "'ApplicationData' existiert nicht im aktuellen Kontext"

Wenn ich im Freigabemodus ausgeführt werde, scheint ApplicationData außerhalb des Geltungsbereichs zu sein. Eher, Zugriff auf Zeitüberschreitungen.

ich zwei Zeilen in eine Aktien UWP Lösung Leere Seite App hinzugefügt haben:

sealed partial class App : Application 
{ 
    /// <summary> 
    /// Initializes the singleton application object. This is the first line of authored code 
    /// executed, and as such is the logical equivalent of main() or WinMain(). 
    /// </summary> 
    public App() 
    { 
     this.InitializeComponent(); 
     string strPath = 
      Windows.Storage.ApplicationData.Current.LocalFolder.Path; // <<< Added 
     System.Diagnostics.Debug.WriteLine(strPath); // <<< Added 
     this.Suspending += OnSuspending; 
    } 
//... 

im Debug-Modus ausgeführt wird, existiert ApplicationData.Current.LocalFolder.Path und strPath ist so etwas wie ...

C:\Users\AUser\AppData\Local\Packages\[some guid-like number]_7442be4pe7dnc\LocalState 

Lauf wenn ich auf die Dinge in dem Direkt-Fenster überprüfen, bekomme ich diese in Release-Modus, ...

ApplicationData.Current.LocalFolder.Path,nq 
The name 'ApplicationData' does not exist in the current context 

Und der Code schwebt über sich selbst gibt mir eine seltsame timeout:

enter image description here

Wenn ApplicationData ist in ihrem Umfang nicht in einer Release-App, wie kann ich in den Ordner bekommen? Wenn es in Reichweite sein soll, warum wäre es nicht hier?


EDIT: gleiche passiert, wenn ich versuche, für eine Schaltfläche ApplicationData in einem Click-Ereignis zugreifen, es ist also kein Timing/Initialisierung Sache.

Antwort

1

Wenn ich im Freigabemodus ausgeführt werde, scheint ApplicationData den Gültigkeitsbereich überschritten zu haben. Eher, Zugriff auf Zeitüberschreitungen.

Wenn Ihre UWP-Anwendung im Freigabemodus ausgeführt wird. VS Build Ihre Codes mit .Net Native Tool Chain und auch die Codes standardmäßig zu optimieren. Und es ist keine geeignete Umgebung zum Debuggen. Aber es wird nicht die Ausgabe Ihrer Codes ändern. Sie können es nur nicht im Debugger sehen.

Sie können Gebäude mit .Net india Tool Chain und Codes Optimierung durch folgende Schritte deaktivieren:

rechts Ihr Projekt klicken File-> Einstellungen->Build Tag auf links-> uncheck Compile with .Net Native tool chain und deaktivieren Optimize code wie unten: enter image description here

Und jetzt können Sie Ihre Codes im Freigabemodus korrekt debuggen.

+0

Ja! Scheint so, als gäbe es einige Threading-Probleme, die nur bei der Veröffentlichung auftauchen (einige Dateien werden während der UI-Erstellung gelesen, die in Debug glücklich waren), und das Debugging hat nicht viel Spaß gemacht. Danke! (Schöne Katze, übrigens.) – ruffin