C#/LINQ Dlaczego nie mogę uruchomić aplikacji na innym komputerze?

0

Witam.

Piszę aplikację w Visual Studio 2015, która korzysta z bazy danych. Utworzyłem plik instalacyjny aplikacji poprzez publish. Aplikacja instaluje się na innych komputerach i nie wyskakują żadne błędy, lecz nie otwiera się przy podwójnym kliknięciu na jej ikonę nie pokazują się żadne komunikaty i żadne błędy. Aplikacja była kompilowana w trybie Release. Spróbowałem skopiować cały folder aplikacji na inny komputer i otworzyć ją z Dziennik\Dziennik\bin\Release\Dziennik.exe lecz również aplikacja nie chce się otworzyć. Znalazłem w internecie, rozwiązanie, że aby działało na innych komputerach biblioteki DLL muszą linkować się statycznie: "trzeba wejść w Project, później ([nazwa projektu]+Properties), w okienku którym się pojawiło masz u góry "opcje Configuration" jeśli nie masz tam ustawionego z listy rozwijanej Relase, to wybierz tą opcję, następnie rozwiń configuration properties, później rozwiń C/C++ i wybierz Code Generation, po prawej stronie ukażą Ci się różne pola, które można ustawić(mniej więcej tak to wygląda), jest tam pole Runtime Library, obok tego pola masz listę rozwijaną - wybierz z niej Multi-threaded (/MT)." <- https://forum.pcformat.pl/C-program-nie-dziala-na-innych-komputerach-potegowanie-w-C-t?page=3 przedostatni post. W tym momencie znów trafiłem na problem ponieważ Configuration w moich Visualu jest nieaktywne i nie wiem dlaczego:

http://imgur.com/a/nlLOw

Na komputerze na którym próbowałem uruchomić aplikacje był zainstalowany Microsoft .NET Framework 4.5.2 oraz Visual c++ redistributable package.

Czy istnieje jakiś sposób na to aby aplikacja działała na innych komputerach?
Czy istnieje jakiś sposób aby opcja Configuration była aktywna?
Jak zrobić aby te biblioteki DLL linkowały się statycznie?

1

Całe te linkowanie statyczne nie ma sensu, bo dotyczy C++, a ty piszesz w C#. Patrząc na twój screen, to obstawiam, że problem masz gdzieś w ładowaniu bazy danych dla swojego programu na innym komputerze albo którejś z dodatkowych bibliotek.

Otwórz na drugim komputerze Podgląd Zdarzeń i powinieneś mieć w sekcji Windows -> Application Logs zdarzenie dotyczące crashu twojej aplikacji, wliczając w to takie, którego źródło to ".NET Runtime", ono powinno w szczegółach mieć informację o wyjątku, który rzuciła aplikacja.

Albo nawet jeszcze lepiej, możliwe, że uda ci się znaleźć zdarzenie tuż po crashu pochodzące od "Windows Error Reporting", tam czasami jest ściezka do folderu z dodatkowymi informacjami, wliczając w to plik .DMP, który możesz otworzyć w swoim Visual Studio i zanalizować.

0

Zrobiłem tak jak radziłeś, wysyłam zdjęcia wyjątku, który poleciał.

http://imgur.com/a/ZJVVw

0

Tam masz w ostatnim obrazku ścieżkę do pliku .DMP - jak sobie go otworzysz w swoim Visual Studio to możesz zobaczyć, co rzuciło błąd, a jak podepniesz swój projekt, to nawet powinno zaznaczyć, w której linijce.

Szkoda, że zapisało tylko rodzaj wyjątku, a nie jego komunikat, ale strzelam: używasz LocalDB? Zainstalowałeś LocalDB na drugim komputerze? Jeżeli nie używasz LocalDB, to czy aplikacja może połączyć się z zewnętrzną bazą danych?

0

Używam localDB, na drugim komputerze nie instalowałem localDB, co dokładnie należy zainstalować aby pozbyć się problemu?

Zainstalowałem ENU\x86\SqlLocaLDB.MSI z tej strony https://www.microsoft.com/en-us/download/details.aspx?id=29062 i ten sam exception.

Plik .DMP tworzy się na chwile(3s) a za chwilę sam się usuwa zdążyłem przenieść go na pulpit to zrobił się jako XML w którym było:

http://pastebin.com/CGXdWhv2

1 użytkowników online, w tym zalogowanych: 0, gości: 1