Pertanyaan Bagaimana cara mencegah Windows dari caching informasi Com Class?


Windows 7 adalah cache beberapa informasi kelas COM. OS lama tidak melakukan ini. Setelah OS mendongakHKCU\Software\Classes\CLSID\{GUID}\LocalServer32 nilai, itu cache nilai, dan tidak mencarinya lagi.

Ketika kami memperbarui perangkat lunak kami, kami menempatkan pembaruan baru di direktori yang berbeda, dan kemudian memperbarui HKCU\Software\Classes\CLSID\{GUID}\LocalServer32 nilai untuk mencerminkan jalur baru. Saat berikutnya perangkat lunak berjalan, ia akan menggunakan file-file terbaru jika berjalan di bawah OS Windows yang lebih lama. Namun, pada Windows 7, ia akan terus menggunakan file yang lebih lama, hingga OS di-reboot.

Saya menjalankan monitor proses, dan menemukan bahwa di bawah Windows 7, itu tidak pernah membaca kunci registri lagi, setelah membaca pertama. Pada OS yang lebih lama, ia membaca kunci itu setiap saat.

Pertanyaan saya adalah: Apakah ada cara untuk memaksa Windows 7 untuk membaca kembali informasi LocalServer32 dari HKCU sarang setiap kali keluar objek proc COM baru dibuat?


25
2018-03-17 15:26


asal


Jawaban:


Saya hanya bisa menyelesaikan masalah ini dengan ...

1: Menghentikan Proses

2: secara eksplisit membatalkan pendaftaran menggunakan regsvr32 pustaka (atau exename / unregserver)

3: Mendaftarkan komponen baru

4: Memulai proses kembali.

Saya akan curiga bahwa ini adalah bagian Un Reg yang gagal untuk Anda. Jika Anda hanya mengubah kunci registri secara langsung maka Anda harus memanggil RegSvr32 / u sebagai gantinya.

Juga pastikan lokasi direktori baru adalah direktori saat ini ketika Anda memanggil RegSvr32.

Perhatikan bahwa saya selalu menghentikan proses dan kemudian tidak terdaftar, ini mungkin merupakan detail yang signifikan.


2
2018-02-21 10:09



Karena ini adalah hasil teratas di Google untuk masalah yang sempit ini, saya pikir akan sangat berharga untuk menambahkan hasil pemecahan masalah saya untuk masalah ini.

Saya menemukan tanggapan ini pada SO: C #: Cara mengubah registry windows dan segera berlaku

Dan solusi terkait dari jawaban itu: Registry Watcher C #

Keduanya tampaknya pilihan yang layak untuk mengelola kunci yang diubah tanpa memaksa reboot. Bagi kami (seperti OP) ini adalah ketika menginstal pembaruan. Bagi kami (mungkin tidak seperti OP) hal ini jarang terjadi dan kami memutuskan upaya untuk mengimplementasikan dan menguji perbaikan seperti yang dijelaskan tidak sebanding dengan solusi sederhana yang mengharuskan reboot: proses yang diharapkan pengguna Windows dengan menginstal perangkat lunak.


1
2018-01-30 21:02