• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# - wejście w tryb przerwania odrazu po odpaleniu aplikacji.

Object Storage Arubacloud
0 głosów
1,165 wizyt
pytanie zadane 4 kwietnia 2018 w C# przez Duch003 Początkujący (440 p.)

Witam.

Mam następujący problem: natychmiast po odpaleniu aplikacji (WPF) przechodzi ona w tryb przerwania, z tym że pokazuje się informacja że nie ma kodu do wyświetlenia. Nie pomaga również próba manualnego prześledzenia kodu od metody Main - wchodzi w tryb przerwania jeszcze przed nią. W kodzie XAML nie widzę również problemów.

Uwaga 1: Korzystam z pakietów Npgsql i NUnit.

Uwaga 2: Próbowałem zmienić okno startowe w metodzie main, Po przywróceniu domyślnego aplikacja się już nie odpalała.

Pytanie: Co może to powodować? Co mogę zrobić aby się dowiedzieć?

 

namespace MyDictionaryApp {
    
    
    /// <summary>
    /// App
    /// </summary>
    public partial class App : System.Windows.Application {
        
        /// <summary>
        /// InitializeComponent
        /// </summary>
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
        public void InitializeComponent() {
            
            #line 5 "..\..\App.xaml"
            this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
            
            #line default
            #line hidden
        }
        
        /// <summary>
        /// Application Entry Point.
        /// </summary>
        [System.STAThreadAttribute()]
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
        public static void Main() {
            MyDictionaryApp.App app = new MyDictionaryApp.App();
            app.InitializeComponent();
            app.Run();
        }
    }
}

 

komentarz 5 kwietnia 2018 przez Siemił Mądrala (7,380 p.)
Nie zmieniałeś położenia oraz nazwy klasy MainWindow.xaml?
komentarz 5 kwietnia 2018 przez Duch003 Początkujący (440 p.)
Na pewno chciałem zmienić okno startowe z MainWindow na inne, dlatego też edytowałem klasę app.g.i.cs. Niestety przez krótką pamięć nie powiem Ci co i gdzie dokładnie zmieniałem, ale sądzę że istnieje takie prawdopodobieństwo. Napisz jakie kody Cię interesują to je tu przekleję.
komentarz 5 kwietnia 2018 przez Siemił Mądrala (7,380 p.)
W app.g.i.cs adres uri jest genetowany na podstawie tego co masz w pliku app.xaml. I wlasnie w app.xaml powinienes zaktualizowac adres do twojego okna glownego.
komentarz 5 kwietnia 2018 przez Duch003 Początkujący (440 p.)
<Window x:Class="MyDictionaryApp.MainWindow"
        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" Padding="10" ResizeMode="NoResize" Icon="img/united-kingdom.png"
        Title="My Dictionary App" Height="500" Width="700">
<code goes here>
</Window>
<Window x:Class="MyDictionaryApp.LogInWindow"
        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:local="clr-namespace:MyDictionaryApp"
        mc:Ignorable="d"
        Title="Sign in" Height="150" Width="400">
<code goes here>
</Window>

Próbowałem zmienić z MainWindow na LogInWindow. Patrzac teraz i porównując z nową aplikacją wpf nie widzę błędu. Tak samo startowe URI wskazuje na MainWindow, i tak też nazywa się plik.

1 odpowiedź

0 głosów
odpowiedź 8 kwietnia 2018 przez Duch003 Początkujący (440 p.)

EDIT: Znalazłem problem.

Oświeciło mnie że mogę wyczytać OUTPUT jaki generuje aplikacja. Output wskazał na ten problem:

Unhandled Exception: System.Windows.Markup.XamlParseException: 'No matching constructor found on type(...)"(...).

Problem wskazywał mi na faktycznie na metodę Main, która wywalała się z powodu konstruktora okna MainWindow. Problem leżał w tym że zmieniłem konstruktor dodając mu argumenty wejściowe, ponieważ moim celem było zamiana okien. Po powrocie do standardowego układu zapomniałem usunąć argumenty z konstruktora MainWindow, przez co się wykrzaczał program...

...ale zastanawia mnie z kolei dlaczego InteliSense ani Debugger nie powiedziały wprost że nie mogę wywołać konstruktora bo nie ma podanych argumentów, lub tym bardziej środowisko skompilowało wszystko pomimo że InteliSense wykrywa takie rzeczy jak brak pasującego konstruktora.


TL:DR

Metoda Main wywoływała konstruktor MainWindow nie podając argumentów, kiedy to argumentów wymagał.


No cóż, ważne ze zagadka rozwiązana. Temat można zamknąć.

Podobne pytania

0 głosów
1 odpowiedź 714 wizyt
pytanie zadane 1 września 2016 w C# przez niezalogowany
0 głosów
0 odpowiedzi 395 wizyt
pytanie zadane 29 sierpnia 2016 w C# przez niezalogowany
0 głosów
1 odpowiedź 1,548 wizyt
pytanie zadane 8 lipca 2016 w C# przez pablocity Początkujący (330 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...