Jak spakować projekt visual studio c++ do wydania?
Zastanawiam się, jak zrobić release build, który zawiera wszystkie niezbędne pliki dll do .exe więc program może być uruchomiony na maszynie non-development bez konieczności instalowania redystrybucji microsoft na maszynie docelowej.
Bez tego otrzymasz komunikat o błędzie, że konfiguracja aplikacji nie jest poprawna i do ponownej instalacji.
5 answers
- Wybierz Projekt - > Właściwości
- Wybierz Konfigurację - > Ogólne
- w polu jak należy połączyć MFC, wybierz statycznie połączyć go.
- Wybierz Linker - > Input. W sekcji dodatkowe zależności Dodaj biblioteki, których potrzebujesz, aby aplikacja łączyła się statycznie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-27 16:41:15
Należy ustawić bibliotekę run-time (W C / C++ - > Generowanie kodu) dla wszystkich projektów na statyczne powiązania, które korelują z następującymi domyślnymi konfiguracjami budynku:
- Wielowątkowy Debug / Release
- Singlethreaded Debug / Release
W przeciwieństwie do wersji " DLL " tych bibliotek.
Nawet jeśli to zrobisz, w zależności od bibliotek, których używasz, być może będziesz musiał zainstalować moduł scalający/framework / etc. Zależy od tego, czy statyczne LIB dostępne są wersje zależności.
Należy pamiętać, że Microsoft nie zaleca statycznego łączenia środowiska wykonawczego z projektem, ponieważ zapobiega to serwisowaniu go przez windows update w celu naprawienia krytycznych błędów bezpieczeństwa. Istnieją również potencjalne problemy, jeśli przekazujesz pamięć między głównym .exe i .pliki dll tak, jakby każdy z tych statycznych łączy runtime możesz skończyć z malloc / free mismatch problemy.
Możesz dołączyć biblioteki DLL do pliku wykonywalnego, bez kompilowania ich do .exe i bez Uruchamianie narzędzia redist - to jest to, co robię i wydaje się działać dobrze.
Jedyną muchą w maści jest to, że musisz załączyć pliki dwa razy, jeśli dystrybuujesz dla szerokiej gamy wersji Windows - nowsze OSs potrzebują plików w katalogach zdefiniowanych przez manifest, a starsze chcą wszystkich plików w katalogu programu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 11:41:09
Szukałbyś linku statycznego (w przeciwieństwie do linku dynamicznego)
Nie jestem pewien, ile ms linkuje statycznie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-06 12:10:55
Jeśli szukasz dowiedzieć się, które dll jest Twój docelowy komputer brakuje następnie użyj zależy.exe, który kiedyś był dostarczany z MSDev, ale można go również znaleźć tutaj . Testowanie tego na kilku maszynach docelowych powinno ci powiedzieć, które biblioteki dll musisz spakować ze swoją aplikacją.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-07 06:40:28