Fungsi MsiProvideAssemblyA (msi.h)

Fungsi MsiProvideAssembly mengembalikan jalur lengkap ke komponen Pemasang Windows yang berisi rakitan. Fungsi meminta sumber dan melakukan penginstalan yang diperlukan. MsiProvideAssembly menaikkan jumlah penggunaan untuk fitur tersebut.

Sintaks

UINT MsiProvideAssemblyA(
  [in]      LPCSTR  szAssemblyName,
  [in]      LPCSTR  szAppContext,
  [in]      DWORD   dwInstallMode,
  [in]      DWORD   dwAssemblyInfo,
  [out]     LPSTR   lpPathBuf,
  [in, out] LPDWORD pcchPathBuf
);

Parameter

[in] szAssemblyName

Nama rakitan sebagai string.

[in] szAppContext

Atur ke null untuk rakitan global. Untuk rakitan privat, atur szAppContext ke jalur lengkap file konfigurasi aplikasi atau ke jalur lengkap file aplikasi yang dapat dieksekusi tempat perakitan telah dibuat privat.

[in] dwInstallMode

Menentukan mode penginstalan. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
INSTALLMODE_DEFAULT
Berikan komponen dan lakukan penginstalan apa pun yang diperlukan untuk menyediakan komponen. Jika file kunci komponen dalam fitur yang diminta, atau induk fitur, hilang, instal ulang fitur menggunakan MsiReinstallFeature dengan kumpulan bit bendera berikut: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA dan REINSTALLMODE_SHORTCUT.
INSTALLMODE_EXISTING
Berikan komponen hanya jika fitur ada. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND.

Mode ini memverifikasi bahwa file kunci komponen ada.

INSTALLMODE_NODETECTION
Berikan komponen hanya jika fitur ada. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND.

Mode ini hanya memeriksa bahwa komponen terdaftar dan tidak memverifikasi bahwa file kunci komponen ada.

INSTALLMODE_NOSOURCERESOLUTION
Berikan komponen hanya jika status penginstalan fitur INSTALLSTATE_LOCAL. Jika status penginstalan fitur INSTALLSTATE_SOURCE, kembalikan ERROR_INSTALL_SOURCE_ABSENT. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND. Mode ini hanya memeriksa bahwa komponen terdaftar dan tidak memverifikasi bahwa file kunci ada.
INSTALLMODE_NODETECTION_ANY
Berikan komponen jika ada fitur dari produk yang diinstal. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND. Mode ini hanya memeriksa bahwa komponen terdaftar dan tidak memverifikasi bahwa file kunci komponen ada. Bendera ini mirip dengan bendera INSTALLMODE_NODETECTION kecuali dengan bendera ini kami memeriksa produk apa pun yang telah menginstal perakitan dibandingkan dengan produk terakhir seperti halnya dengan bendera INSTALLMODE_NODETECTION. Bendera ini hanya dapat digunakan dengan MsiProvideAssembly.
kombinasi bendera REINSTALLMODE
Panggil MsiReinstallFeature untuk menginstal ulang fitur menggunakan parameter ini untuk parameter dwReinstallMode , lalu berikan komponen.

[in] dwAssemblyInfo

Informasi rakitan dan jenis perakitan. Atur ke salah satu nilai berikut.

Nilai Makna
MSIASSEMBLYINFO_NETASSEMBLY
0
.NET Assembly
MSIASSEMBLYINFO_WIN32ASSEMBLY
1
Rakitan Win32

[out] lpPathBuf

Penunjuk ke variabel yang menerima jalur ke komponen. Parameter ini dapat berupa null.

[in, out] pcchPathBuf

Penunjuk ke variabel yang menentukan ukuran, dalam karakter, dari buffer yang diacu oleh parameter lpPathBuf . Pada input, ini adalah ukuran penuh buffer, termasuk spasi untuk karakter null yang mengakhiri. Jika buffer yang diteruskan terlalu kecil, jumlah yang dikembalikan tidak menyertakan karakter null yang mengakhiri.

Jika lpPathBuf null, pcchPathBuf bisa null.

Mengembalikan nilai

Nilai Makna
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_FILE_NOT_FOUND
Fitur ini tidak ada atau rusak. Kesalahan ini dikembalikan untuk dwInstallMode = INSTALLMODE_EXISTING.
ERROR_INSTALL_FAILURE
Penginstalan gagal.
ERROR_INSTALL_NOTUSED
Komponen yang diminta dinonaktifkan pada komputer.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_SUCCESS
Fungsi berhasil diselesaikan.
ERROR_UNKNOWN_FEATURE
ID fitur tidak mengidentifikasi fitur yang diketahui.
ERROR_UNKNOWN_COMPONENT
ID komponen tidak menentukan komponen yang diketahui.
ERROR_UNKNOWN_PRODUCT
Kode produk tidak mengidentifikasi produk yang diketahui.
INSTALLSTATE_UNKNOWN
Produk yang tidak dikenali atau nama fitur diteruskan ke fungsi.
ERROR_MORE_DATA
Luapan buffer dikembalikan.
ERROR_NOT_ENOUGH_MEMORY
Sistem tidak memiliki cukup memori untuk menyelesaikan operasi. Tersedia dengan Windows Server 2003.
ERROR_INSTALL_SOURCE_ABSENT
Tidak dapat mendeteksi sumber.
 

Untuk informasi selengkapnya, lihat Pesan Kesalahan yang Ditampilkan.

Keterangan

Ketika fungsi MsiProvideAssembly berhasil, parameter pcchPathBuf berisi panjang string di lpPathBuf.

Opsi INSTALLMODE_EXISTING tidak dapat digunakan dalam kombinasi dengan bendera REINSTALLMODE.

Fitur dengan komponen yang berisi file yang rusak atau versi file yang salah harus diinstal ulang secara eksplisit oleh pengguna, atau dengan meminta aplikasi memanggil MsiReinstallFeature.

Catatan

Header msi.h mendefinisikan MsiProvideAssembly sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Pemasang Windows pada Windows Server 2003 atau Windows XP. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Pemasang Windows.
Target Platform Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Fungsi Khusus Komponen

Penginstalan Multi-Paket