Aplikacje nie uruchamiają się na innych komputerach. VS 2008

0

Witam

Nie jestem pewny czy w dobrym dziale to piszę, mam może co dla niektórych banalny problem, no ale początki takie bywają.

Zaczynam programowanie w Windows Form i z tego względu przenoszę się z poczciwego DevCpp na Visual C++ 2008. Pierwsze co mnie zaskoczyło to prostota tworzenia okienkowych wersji programów.
Lecz i niestety mimo wielu poszukiwań w internecie, nie wychodzi mi to, a dokładnie aplikacje napisane w WinForms nie działają na innych komputerach.

Zainstalowałem Framework'i i C++ Redistribute C++ 2005 (a ja piszę w 2008)
niestety nic.... nie mogę uruchomić programu na innych komputerach.

Sposób z podkładaniem pliku manifest i plikami dll podany na wikipedii też nie działa już :( ratujcie

Drugie pytanie czy Visual Studio 2008 to to samo co Visual C++ 2008, może głupie pytanie ale pogubilem się w tym.

0
jacek123456 napisał(a)

nie mogę uruchomić programu na innych komputerach.

Wyskakuje jakiś komunikat o błędzie? Czy po prostu dwuklik nie działa?

jacek123456 napisał(a)

Drugie pytanie czy Visual Studio 2008 to to samo co Visual C++ 2008, może głupie pytanie ale pogubilem się w tym.

Visual Studio umożliwia tworzenie w wielu językach, Visual C++ tylko w jednym.

0

Komunikat, że konfiguracja jet nieprawidłowa.
Na moim komputerze wszytko jest w porządku, na innych nie uruchomi się.

0

Masz zainstalowac odpowiedniego frameworka, pod ktorego kompilujesz (domyslnie w VS2008 jest to wersja 3.5 - wybierasz przy tworzeniu nowego projektu).

No i mam nadzieje, ze nie probujesz uruchamiac na innym kompie programow skompilowanych w trybie Debug, bo to jest loteria - moze zadziala moze nie.

0

Niestety zmiana frameworka na 2.0 nie pomogła.
Używam pliku exe w deguggera ale i Relase....
Kombinowałem też z dodaniem bibliotek ATL w ustawieniach projektu.
Lecz nadal nie działają aplikacje na innych komputerach... co robie źlę?
Z góry dziękuję wszystkim za pomoc

0

ATL to biblioteki do MFC, a nie WindowsForms.

Jeśli zmiana na 2.0 nie pomogła to znaczy, że na drugim kompie nie ma tego frameworka. Zresztą napisałbyś jaki błąd wyskakuje bo wróżkami nie jesteśmy.

  1. Musisz zainstalować na drugim kompie "Microsoft .NET Framework 2.0" lub nowszy. Nowsze wersje są kompatybilne wstecz aż do 2.0.

  2. Exe musi być kompilowany w trybie Release.

  3. W ustawieniach projektu "target framework" co najwyżej w takiej wersji jak framework na drugim kompie.
    Być może zmieniłeś to ustawienie tylko dla trybu Debug ? Ustawiając "target framework" w lewym górnym rogu okna opcji wybierz "All configurations", wtedy będą się tyczyć zarówno trybu Debug jak i Release

Jeśli te 3 pkt są spełnione to nie ma bata żeby nie chodziło.

0

Witam

Zrobiłem jak radzicie....
Próbowałem przed chwilą na jeszcze innym komputerze.
Zainstalowałem tam frameworka 2.0 ale niestety nadal to samo.

Komunikat brzmi

...... Visual Studio 2008\Projects\Test\Release\Test.exe  
Nie można uruchomić aplikacji, ponieważ jej konfiguracja jest niewłaściwa. Problem ten może rozwiązać ponownie zainstalowanie aplikacji
0

pkt 3.

0

Common Properties / Framework and References / Target Framework jest ustawiony na .NET Framework 2.0 pole Configuration: nie jest dostępne ( N/A )

0

A, jeszcze jedno.
Otwórz opcje projektu, wybierz konfiguracje "Release", wejdź w
Configuration properties -> C++ -> Code Generation
i ustaw "Runtime Library" na "Multi-threaded (/MT)"

Poza tym śmiało instaluj najnowszego frameworka 3.5, jest kompatybilny wstecz aż do 2.0
1.0 i 1.1 były jeszcze kulawe i właściwie odchodzą w zapomnienie. Denerwuje mnie, że produkty Turbo Borlanda go wymagają :[

0

@adf88
A czy przypadkiem do zainstalowania 3.5 nie jest wymagana obecnosc co najmniej 2.0S P2? Bo cos mi tak sie przypomina piate przez dziesiate :>

A ta kompatybilnosc, to polega na tym, ze jak instalujesz nowsze, to automatycznie wgrywane sa i starsze...

0

yyy, albo Cię nie zrozumiałem, albo twoje drugie zdanie przeczy pierwszemu.

Zresztą autor zainstalował frameworka 2.0

A z tą kompatybilnością to wydaje mi się, że po prostu interfejs 3.0 udostępnia dokładnie to co oferowało 2.0 (nie licząc całkiem nowych dodatków), a tylko wnętrzności są ulepszone. Przeglądając folder "%WINDIR%\assembly" nie widzę jakiegoś rozgraniczeni 2.0/3.0, poza tym instalator 3.0 nie waży chyba 2x 2.0 + dodatki ?

0

adf88 -- jesteś Wielki

Musisz przyznać jednak, że tego typu problemy mogą skutecznie zniechęcić początkujących. Ja dwa dni walczylem, nie poddałem się, ale bez Twojej pomocy byłoby ciężko.
Dziękuję i Pozdrawiam

0

Witam
Niestety ale chyba przedwcześnie się cieszyłem.
Działa tylko na jednym komputerze oprócz mojego na innych już nie... mają te same frameworki, więc nie rozumiem.
Ten sam system.... Nie można jakoś tego obejść? Żeby program kompilował się z wszystkimi potrzebnymi bibliotekami?

Przy ustawieniu które podałeś wyżej, nie funkcjonuje tryb konpilacji Release

------ Rebuild All started: Project: PętlaFor, Configuration: Release Win32 ------
Deleting intermediate and output files for project 'PętlaFor', configuration 'Release|Win32'
Compiling...
cl : Command line error D8016 : '/MT' and '/clr:pure' command-line options are incompatible
Build log was saved at "file://c:\Documents and Settings\oem\Moje dokumenty\Visual Studio 2008\Projects\PętlaFor\PętlaFor\Release\BuildLog.htm"
PętlaFor - 1 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
0

Build log was saved at "file://c:\Documents and Settings\oem\Moje dokumenty\Visual Studio 2008\Projects\PętlaFor\PętlaFor\Release\BuildLog.htm"

Pokaz co tam pisze w tym logu. Moze wtedy cos poradzimy ;)

Ogolnie to ja takich problemow nie mialem. Jak to sie mowi "u mnie dziala".

0

zaraz zaraz zaraz panowie.. mowa o C++ czy C++/CLI ? wydaje mi sie ze autor raczej chyba chcial czysty C++ - problem z redistami juz opisywalem wylewnie. w przypadku C++/CLI chyba wystarczy miec u "klienta" te-jedna-wlasciwa wersje platformy .Net, ale redisty nie zaszkodza tez. numerki redistow zalaczylem w moim oryginalnym poscie, nie pamietam numeru.. przeszukajcie "quetzalcoatl redisty" czy jakos tak..

tak czy owak ten post raczej pasuje bardziej do dzialu C++ niz C# hm? :)

jacek: kompilator mowi wyraznie
cl : Command line error D8016 : '/MT' and '/clr:pure' command-line options are incompatible

musisz sie zdecydowac, albo C++/CLI albo C++ :)
/MT wiaze aplikacje z bibliotekami native C++, we wlasciwosciach to owa opcja "multithreaded runtime libraries"
/clr:pure wiaze aplikacje TYLKO I WYLACZNIE z .NET

siłą rzeczy, nie mozna łączyc tych opcji. albo oslab CLR (opcja CLR sa na zakladce General we wlasciwosciach) albo wylacz multithreaded run.lib.

0

Mam identyczny problem. Dostaję komunikat:
Nie można uruchomić aplikacji, ponieważ jej konfiguracja jest niewłaściwa. Problem ten może rozwiązać ponownie zainstalowanie aplikacji.

Projekt to jedno okno z przyciskiem.
Kompilacja na CSharp 2008 Express, Targer Framework: .NET Framework 2.0

Za diabła nie można uruchomić pliku na innym komputerze z zainstalowanym Microsoft .NET Framework 2.0, ani pliku Relase, ani Debug (przynajmniej na Win XP). Co ciekawe pliki skompilowane w CSharp 2005 Express uruchamiają się bez problemu. I tak sobie myślę, że chodzi o SP2 do XP-eka, bez niego chyba nie da się uruchomić plików skompilowanych w VS 2008. Najciekawsze jest to, że na Win 98 z .NET Framework 2.0 exeki uruchamiają się bez problemu skompilowane w CSharp Express czy to 2008, czy 2005. Można więc wywnioskować, albo się mylę, że chodzi o SP2, Win 98 go nie potrzebuje ;)

MS zawsze musi przygotować jakąś niespodziankę (chyba że to błąd w środowisku, ale nie sądzę), także opcja Target Framework jest lekko "sprawna inaczej".

0

tutaj, http://4programmers.net/Forum/viewtopic.php?mode=unwatch&id=121562 w pierwszym moim poscie od gory troche sie pobawilem i wkleilem numery runtimeow/redistow/.net'a tyczacych sie roznych wersji visuala.. sęk w tym, ze te numery sa czyle nie tylko na 200x ale tez na .. servicepacki. np. 2005sp0 i 2005sp1 maja inne numery! innymi slowy, nie tylko redisty dla C++ 2005sp0 a 2005sp1 beda inne, ale tez .Net2.0 sp0 i sp1 sa za pewne inne.. podobnie w 2003 i 2008.
a na owym win98 podejrzewam ze juz moze przypadkiem miales zainstalowane wlasciwe assemblie bokiem, moze z innym programem przyszly;)

0

Testy były przeprowadzane na czystych systemach Win 98/XP z doinstalowywanym .NET Framework-iem 2.0. Problem jednak został rozwiązany (przynajmniej u mnie). Tak jak podejrzewałem potrzeby jest nie tylko .Net Framework 2.0, ale także serwis pak do Win XP. Wystarczy jednak już jedynka, a nie jak podejrzewałem SP2 :)

0

pozwolę sobie odświeżyc temat. czy ktoś temu zaradził bo mam dokładnie taki sam problem.. działa tylko u kolegi który ma zainstalowanego VS2008 u nikogo innego nie.próbowałem wszystkiego co było tu opisane i nic... :(

0

Hmm pozwole sobie tez odswiezyc temat.

Mam aplikacje wxWidgets kompilowana pod Visual C++ 2008 - aplikacja jest więc natywna Win32

A mimo to nie dziala na kompach inny niz moj, komunikat jak wyzej. Co jest?

0

@adf88
Robilem juz tak, ale wtedy wali jakimis linker errorami z wxWidgets, no chyba ze i wxWidgets trzeba skompilowac z taka opcja zeby dzialalo.

Poki co, doszedlem ze trzeba zainstalowac VC++ runtime i wtedy jest ok, ciekawe ze samo dodanie dll-ki, z ktorej program importuje nic nie daje - trzeba instalatorem

0

No to trzeba by coś w wxWidgets zamieszać. To jest jakaś specjalna wersja pod VS ?

Poszukaj, gdzie znajdują się odwołania do funkcji brakujących linkerowi, może da się je zmienić na statyczne odpowiedniki. Być może wystarczy zdefiniować jakieś makro i wxWidgets sam się połapie.

Poczytaj:
http://wiki.wxwidgets.org/MSVC_.NET_Setup_Guide

Czy to przypadkiem o to nie chodzi:
http://sourceforge.net/tracker/index.php?func=detail&aid=1904863&group_id=9863&atid=109863

0

hmm wxWidgets skompilowane po IDE - w paczce byla gotowa solucja do kompilacji.

Blad mam taki:

Error 4 error LNK2001: unresolved external symbol "public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ) dlgApp.obj test

Jezeli ustawie MT DLL to błędu nie ma..

0
othello napisał(a)

Blad mam taki:

Error 4 error LNK2001: unresolved external symbol "public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ) dlgApp.obj test
A pierwszy ?

Jaką wersję VC++ i wxWidgets używasz ?

0

Jest tylko ten jeden blad i nie bardzo wiem skad sie bierze. wxWidgets 2.8.7 skompilowane jako biblioteka statyczna, release, ansi

Chyba musze poudzielac sie na ich forum :/

0

A skompilowałeś wxWidgets z opcją /MT ? (Code Generation: Multi-Threaded). Pewnie nie :)

Btw, ten wątek powinien być w dziale C++.

0

Hm no wlasnie pewnie nie, bo nie zwracalem na to uwagi na poczatku - przekompiluje i zobaczymy czy to cos da :>

0

na pewno da. w obrebie aplikacji, jesli nie chcesz miec problemow z roznymi wersjami CRT, wszystkie dolaczane biblioteki powinny byc kompilowane z tymi samymi flagami signle/multi/dll/debug/unicode..

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