Bagaimana anda mengemas visual studio c++ proyek untuk rilis?

I'm bertanya-tanya bagaimana untuk membuat membangun rilis yang mencakup semua yang diperlukan file dll ke dalam .exe sehingga program dapat dijalankan pada non-pengembangan mesin tanpa harus menginstal microsoft redistributable pada mesin target.

Tanpa melakukan ini, anda mendapatkan pesan error bahwa aplikasi konfigurasi yang tidak benar dan untuk menginstal ulang.

Mengomentari pertanyaan (1)
Larutan
  1. Memilih Proyek -> Sifat
  2. Pilih Konfigurasi -> Umum
  3. Dalam kotak untuk bagaimana anda harus link MFC, memilih untuk statis link ini.
  4. Memilih Linker -> Input. Di bawah Dependensi Tambahan, tambahkan setiap perpustakaan anda perlu aplikasi anda untuk statis link di.
Komentar (2)

Anda perlu mengatur run-time library (Dalam C/C++ -> Kode Generasi) untuk SEMUA proyek-proyek untuk hubungan statis, yang berkorelasi dengan default berikut bangunan konfigurasi:

  • Multithreaded Debug/Rilis
  • Singlethreaded Debug/Rilis

Sebagai lawan "DLL" versi dari perpustakaan tersebut.

Bahkan jika anda melakukannya, tergantung pada perpustakaan anda're menggunakan, anda mungkin harus menginstal Menggabungkan Modul/framework/dll. Hal ini tergantung pada apakah statis LIB versi dependensi yang tersedia.

Komentar (0)

Diketahui bahwa Microsoft tidak merekomendasikan bahwa anda statis link runtime ke dalam proyek anda, karena hal ini mencegah dari yang dilayani oleh windows update untuk memperbaiki keamanan kritis bug. Ada juga potensi masalah jika anda melewati memori antara utama anda .exe dan .file dll seolah-olah masing-masing link statis runtime anda dapat berakhir dengan malloc/gratis ketidakcocokan masalah.

Anda dapat menyertakan Dll dengan eksekusi, tanpa menyusun mereka ke dalam .exe dan tanpa menjalankan redist tool - ini adalah apa yang saya lakukan dan tampaknya bekerja dengan baik.

Satu-satunya rintangan adalah bahwa anda perlu untuk memasukkan file dua kali jika anda're mendistribusikan untuk berbagai macam versi Windows - baru OSs perlu file di manifest yang ditetapkan direktori, dan orang tua ingin semua file di direktori program.

Komentar (0)

Anda'a akan mencari untuk link statis (sebagai lawan untuk secara dinamis link)

I'm tidak yakin berapa banyak dari MS redistributables statis link di.

Komentar (0)

Jika anda mencari untuk mengetahui dll's anda mesin target yang hilang maka gunakan depends.exe yang digunakan untuk datang dengan MSDev, tetapi juga dapat ditemukan di sini. Pengujian ini pada beberapa mesin target harus memberitahu anda yang dll's yang anda butuhkan untuk paket dengan aplikasi anda.

Komentar (0)