Jak si zabalit projekt Visual Studio C ++ k uvolnění?

hlasů
32

Zajímalo by mě, jak vytvořit sestavení uvolňováním, který obsahuje všechny potřebné soubory DLL do exe, takže program lze spustit na non-vývojovém počítači, aniž by bylo nutné instalovat microsoft redistributable v cílovém počítači.

Aniž by dělali to se zobrazí chybová zpráva, že konfigurace aplikace není správná a znovu nainstalovat.

Položena 06/08/2008 v 10:49
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
17

  1. Vyberte si projekt -> Vlastnosti
  2. Zvolte Konfigurace -> Obecné
  3. V poli pro jak byste měli propojit MFC, vyberte ji staticky propojit.
  4. Zvolit propojovací -> Vstup. Ve skupinovém rámečku Další závislosti , přidat nějaké knihovny, které vyžadují vaši aplikaci staticky propojit v.
Odpovězeno 13/08/2008 v 19:10
zdroj uživatelem

hlasů
10

Je potřeba nastavit knihovna run-time (Podle C / C ++ -> Code Generation) pro všechny projekty statické vazby, což koreluje s následující konfigurací výchozí stavebních:

  • Multithreaded Debug / Release
  • Singlethreaded Debug / Release

Na rozdíl od „dll“ verze těchto knihoven.

I když budete dělat, že v závislosti na knihovnách, které používáte, budete možná muset nainstalovat Merge Module / rámec / etc. Záleží na tom, zda jsou k dispozici statické LIB verze svých závislostí.

Odpovězeno 07/08/2008 v 22:11
zdroj uživatelem

hlasů
4

Uvědomte si, že Microsoft nedoporučuje, že statická odkaz runtime do projektu , protože to zabraňuje obsluhována Windows Update opravit kritické bezpečnostní chyby. Existuje také potenciální problémy, pokud jsou předávání paměť mezi hlavní exe a DLL soubory, jako kdyby každý z těchto statické propojení runtime můžete skončit s malloc / problémy volných nesourodosti.

Můžete zahrnout dll s spustitelný soubor, aniž by kompilaci je do exe a aniž by hrozilo redist nástroj - to je to, co dělám, a zdá se, že funguje dobře.

Jediný háček je, že musíte zahrnout soubory dvakrát, pokud jste distribuci pro širokou škálu verzí Windows - novější OS potřebovat soubory v manifestu definovaného adresáře, a ty starší chtějí všechny soubory v adresáři programu ,

Odpovězeno 09/09/2008 v 12:41
zdroj uživatelem

hlasů
0

Pokud hledáte zjistit, které DLL váš cílový počítač chybí poté použijte Depends.exe který používal přijít s msdev, ale lze nalézt také zde . Testování to na několik cílových počítačích uživatele, který DLL, musíte zabalit s aplikací by měl říct.

Odpovězeno 07/08/2008 v 07:40
zdroj uživatelem

hlasů
0

To byste se při pohledu na statickou linku (na rozdíl od dynamicky propojit)

Nejsem si jistý, kolik z redistributables MS staticky odkazují na.

Odpovězeno 06/08/2008 v 13:10
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more