Cara men-Download ketergantungan dll di Internet Explorer dengan .inf File

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 165075 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Hal ini sering diperlukan untuk men-download ketergantungan dll bersama dengan ActiveX Kontrol. Kontrol MFC dan Visual Basic memiliki persyaratan ini. Artikel ini akan menjelaskan tiga cara bahwa Anda dapat melakukan hal ini.

INFORMASI LEBIH LANJUT

Ada tiga cara untuk memasukkan dll tergantung di download untuk kontrol. Cara pertama adalah untuk menyertakan DLL(s) dalam berkas CAB untuk mengontrol bersama dengan OCX dan INF file. Kelemahan dari hal ini adalah bahwa DLL akan di-download setiap saat kontrol di-download. Dalam beberapa kasus, ini tepat. Cara berikutnya adalah untuk paket DLL(s) tergantung pada CAB file yang terpisah dan merujuk kepada yang dalam file INF untuk kontrol. The cara ketiga juga paket DLL di file CAB terpisah tetapi berkas CAB disebutkan dalam file INF kontrol dengan kait. Menggunakan kait yang memungkinkan proses download untuk melaksanakan INF atau EXE file yang terdapat dalam bergantung CAB file.

Untuk menambahkan sebuah dependensi untuk OCX (Simpdll.dll dalam contoh ini), bagian mirip dengan bagian untuk kontrol ditambahkan ke bagian [AddCode] INF file:
   [Add.Code]
   TestDw.ocx=TestDw.ocx
   simpdll.dll=simpdll.dll
				
Bagian kemudian ditambahkan ke file INF untuk mengontrol instalasi DLL:
   [simpdll.dll]
   FileVersion=1,0,0,1
   file-win32-x86=thiscab
				
Ini adalah cara pertama yang disebutkan untuk menyertakan ketergantungan DLL di download.

Untuk memasukkan DLL di file CAB terpisah, semua yang diperlukan untuk mengubah lokasi dari "thiscab" ke URL di mana tergantung CAB akan berlokasi:
file-Win32-x86=http://www.contoso.com/Controls/Dependent.Cab
Dalam kasus ini, Simpdll.cab berisi hanya simpdll.dll.

Beberapa dll dapat ditambahkan ke file INF dan TAKSI di atas jika diperlukan.

Cara ketiga untuk paket tergantung dll adalah untuk merujuk DLL tergantung CAB file menggunakan kait. Dengan teknik ini, INF atau EXE file dalam tergantung CAB dapat dijalankan di download.

Bagian berikut dari berkas .inf kontrol DLL download ketergantungan untuk Kontrol MFC:
   [Add.Code]
   ...
   msvcrt.dll=msvcrt.dll
   mfc42.dll=mfc42.dll
   olepro32.dll=olepro32.dll

   [msvcrt.dll]
   FileVersion=4,20,0,6164
   hook=mfc42installer

   ...

   [mfc42installer]
   file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
   run=%EXTRACT_DIR%\mfc42.exe
				
Dalam kasus ini, dll MFC dikemas dalam berkas .exe file, yang terdapat dalam berkas .cab (mfc42.cab). Namun, alat-alat untuk membuat berkas .exe file tidak saat ini tersedia dari Microsoft. Oleh karena itu, Anda akan baik perlu paket dll tergantung dengan berkas .inf atau referensi berkas .inf di hook instalasi:
   [yourinstaller]
   file-win32-x86=http://example.microsoft.com/simpdll.cab
   InfFile=your.inf
				
Atau, Anda akan perlu untuk membangun diri yang mengekstrak file EXE yang menggunakan pihak ketiga alat-alat.

Untuk mengilustrasikan, berikut ini adalah berkas .inf yang digunakan untuk menginstal tergantung MFC dll. Anda dapat mengubah ini untuk menginstal dll Anda sendiri dengan cara yang sama bahwa MFC dll diinstal.
   ; ========================= Mfc42.inf =========================

   ; This file will control the download of the MFC 4.2 DLLs

   [version]
   ; version signature (same for both NT and Win95) do not remove
   signature="$CHICAGO$"
   AdvancedINF=2.0

   [SourceDisksNames]
   ; This section specifies that all sources are in the "default"
   ; location.
   1="default",,1

   [DefaultInstall]
   ; Default section to process and copy all files under the section
   ; mfcdllsx.files and Register DLLs under the section mfcdllsx.register.
   CopyFiles=mfcdllsx.files
   RegisterOCXs=mfcdllsx.register

   [DestinationDirs]
   ; Destination Directories for CopyFiles Sections.
   ; 11 indicates LDID_SYS - system directory
   mfcdllsx.files=11

   [mfcdllsx.files]
   ; ,,,32 - Suppress version conflict dialog and don't overwrite newer
   ; DLLs
   msvcrt.dll,,,32
   mfc42.dll,,,32
   olepro32.dll,,,32

   [mfcdllsx.register]
   ; msvcrt.dll is not self registering
   %11%\mfc42.dll
   %11%\olepro32.dll

   ; ====================== Mfc42.inf ======================
				
DLL perlu terdaftar di bagian .register jika itu ekspor DllRegisterServer fungsi. Ini dapat ditentukan dengan memeriksa DLL dengan utilitas Dumpbin.exe Visual C compiler. Anda juga dapat menjalankan Regsvr32 pada DLL, yang mencoba untuk mendaftarkan DLL. Regsvr32 beban DLL, memverifikasi bahwa DllRegisterServer benar diekspor dengan menelepon GetProcAddress() fungsi DLLRegisterServer. Jika berhasil, fungsi DllRegisterServer diekspor dan kemudian disebut.

Berhati-hatilah, bagaimanapun, bahwa berjalan Regsvr32 pada DLL mungkin tidak diinginkan efek samping. Ketika DllRegisterServer disebut, membuat sesuai entri registri yang menunjuk ke lokasi DLL pada mesin. Sebagai contoh, mengetik perintah berikut pada prompt MS-DOS, untuk tujuan pengujian, dapat menyebabkan masalah:
   copy mfc42.dll C:\Test
   run "D:\msdev\bin\REGSVR32.EXE C:\Test\mfc42.dll"
   delete mfc42.dll
				
Saat berikutnya sistem mencoba untuk mencari Mfc42.dll, mendongak registri, menemukan bahwa berkas dipetakan ke C:\Test\Mfc42.dll, dan tidak menemukan ada. Menjalankan Regsvr32 pada file yang sudah diinstal pada mesin tidak menyebabkan masalah.

Menginstal DLL dengan kait dan self mengekstrak EXE berguna untuk Setelah alasan: Jika DLL yang perlu ditingkatkan sudah dibuka di memori, download akan gagal. Ini adalah masalah yang diketahui, yang telah tetap di dalam Internet Explorer versi 4.0. Internet Explorer 4.0 akan menyarankan reboot dan beban DLL yang baru selama reboot.

REFERENSI

Untuk informasi tambahan, silakan lihat artikel berikut pada Basis Pengetahuan Microsoft:
167158 Bagaimana Kontrol MFC paket untuk digunakan melalui Internet
167597 Menetapkan FileVersion dan #Version untuk di-Download komponen

Untuk informasi lebih lanjut, lihat Webcast berikut:
Bagaimana Internet komponen Download bekerja?

Properti

ID Artikel: 165075 - Kajian Terakhir: 15 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Windows Internet Explorer 8
  • Windows Internet Explorer 8 on Windows Server
Kata kunci: 
kbcode kbdownload kbfaq kbhowto kbmt KB165075 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:165075

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com