Saya punya masalah dengan executable kami. Saya menjalankan C ++ 32-bit ini yang dapat dieksekusi pada kotak pengembangan Windows 7 64-bit saya yang juga memiliki semua aplikasi Microsoft (Visual Studio 2008 + 2010, TFS, SDK, Microsoft Office) ... Dan masih berjalan dengan baik.
Sekarang saya mendapatkan instalasi klien dari program yang sama dan diminta untuk mengujinya dengan instalasi Windows 7 yang bersih. Jadi saya mendapat satu VMware Windows 7 64-bit dan memperbaruinya ke Windows 7 SP 1 (versi yang sama dengan yang dikembangkan oleh kotak pengembang saya). Tetapi sementara di kotak pengembang saya semuanya baik-baik saja, program tidak bekerja dengan kotak VMware (uji coba 30 hari).
X86 Dependency Walker memberi tahu saya bahwa file DLL berikut tidak ada:
- API-MS-WIN-CORE-COM-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
- API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
- DCOMP.DLL
- GPSVC.DLL
- IESHIMS.DLL
Saya mencari Google untuk API-MS-WIN -... DLL file dan menemukan mereka seharusnya sudah menjadi bagian dari Windows 7 (beberapa situs mengklaim milik Windows 8 dan Windows Server 2012 sekalipun).
Saya sudah mencoba perbaikan yang disarankan yang saya temukan, yaitu:
- menjalankan 'sfc / scannow'
- menginstal executable runtime Visual Studio 2008 SP1
Tapi itu tidak menyelesaikan apa pun. :-(
Catatan: Kotak pengembangan saya tidak memilikinya, dan sepertinya tidak membutuhkannya. Sebagai contoh, user32.dll di kotak saya tidak terhubung dengan salah satunya, sedangkan instalasi pada VMware tidak.
Adakah cara untuk memperbaiki masalah ini? Saya mencoba mencari unduhan / perbaikan yang sesuai pada halaman Microsoft, tetapi saya gagal.
Setelah menyelesaikan masalah saya, saya ingin melaporkan apa yang saya temukan, dan saya tidak dapat memposting ini sebagai jawaban karena pertanyaan telah ditutup.
Sebenarnya semua file DLL dilaporkan hilang oleh alat Ketergantungan Walker, yaitu mereka
* API-MS-WIN-CORE-...
ketik file DLL bukan bagian dari masalah yang sebenarnya.
Dalam kasus saya, registrasi tiga file OCX hilang dan setelah itu semuanya baik-baik saja, BUT Dependency Walker tool masih mendaftar semua file DLL yang sama seperti sebelumnya bahkan ketika program sedang berjalan dengan baik sekarang.
Inti dari itu: Seperti yang dinyatakan orang lain, alat ini agak ketinggalan zaman sekarang dan tidak selalu berfungsi dengan baik dengan OS yang lebih baru. Jadi tetap buka mata dan jangan sampai disesatkan dengan melewatkan 'API-MS-WIN-CORE-COM-L1-1-0.DLL', ... masalahnya mungkin terletak di tempat lain.
Jawaban:
Masalah ini terkait dengan tidak adanya Visual Studio "paket redistributable." Tidak jelas mana yang hilang berdasarkan dependensi berjalan, tetapi saya akan mencoba yang sesuai dengan versi kompiler Anda terlebih dahulu dan melihat apakah semuanya berjalan dengan baik:
Visual Studio 2015
Visual Studio 2013
Visual Studio 2010
Visual Studio 2008
Saya mengalami masalah ini karena saya menggunakan kompiler Visual Studio, tetapi tidak lingkungan Visual Studio penuh.
Akan berani menyuntikkan tautan baru di sini: Unduhan Visual C ++ terbaru yang didukung . Stein Åsmul, 29.11.2018 .
sumber
Saya baru saja menyelesaikan masalah yang sama dengan C ++ Qt 5 dan Windows 7 64 bit dengan MSCVC 2012.
Pada awalnya saya pikir itu adalah masalah file MSVC / Windows DLL, tetapi seperti yang dikatakan BorisP, masalahnya ada pada dependensi proyek saya. Kuncinya adalah " Bagaimana mengetahui dependensi proyek Anda di Qt 5? ".
Karena saya tidak menemukan cara yang jelas untuk mengetahuinya ( Dependency Walker tidak banyak membantu saya ...), saya mengikuti "prosedur terbalik" berikutnya yang membutuhkan waktu tidak lebih dari 5 menit dan menghindari banyak sakit kepala dengan DLL dependensi file:
Ketika Anda memiliki semua file DLL di folder yang sama, lebih mudah untuk menemukan mana di antara mereka yang tidak valid (XML, WebKit, ... apa pun ..), dan akibatnya metode ini tidak memakan waktu lebih dari lima menit.
sumber
windeployqt
alat untuk itu, lihat misalnya stackoverflow.com/a/33292008/4023446windeployqt
sering menyalin file yang tidak perlu.Saya baru saja menyelesaikan masalah yang sama.
Ketergantungan Walker menyesatkan dalam kasus ini dan menyebabkan saya kehilangan waktu. Jadi, daftar file DLL "hilang" dari posting pertama tidak membantu, dan Anda mungkin dapat mengabaikannya.
Solusinya adalah menemukan referensi mana yang dipanggil oleh proyek Anda dan periksa apakah referensi tersebut benar-benar diinstal pada server.
@ Ben Brammer, tidak penting tiga file .ocx yang hilang, karena mereka hanya hilang untuk proyek Leo T Abraham. Proyek Anda mungkin memanggil file DLL lainnya.
Dalam kasus saya, itu bukan tiga file .ocx, tetapi hilang file DLL konektor MySQL. Setelah menginstal Konektor MySQL untuk .NET di server, masalahnya hilang.
Jadi, singkatnya, solusinya adalah: periksa apakah semua referensi proyek Anda ada di sana.
sumber
Seperti disebutkan, DCOMP adalah bagian dari redistributables VC ++ (menerapkan runtime OpenMP) dan merupakan satu-satunya komponen yang benar-benar hilang. Semua sisanya adalah laporan palsu.
Khususnya API-MS-WIN-XXXX.DLL adalah set-API - pada dasarnya, tingkat tipuan panggilan tambahan diperkenalkan secara bertahap sejak Windows 7. Pengembangan Ketergantungan Walker tampaknya dihentikan jauh sebelum itu, dan itu tidak dapat menangani set API dengan benar.
Jadi tidak ada yang perlu dikhawatirkan di sana. Anda tidak kehilangan apa pun lagi.
Alternatif yang lebih baik untuk menemukan file DLL yang benar-benar dibutuhkan yang hilang (jika memang itu masalahnya) adalah menjalankan Process Monitor dan mundur dari kegagalan, mencari urutan probe gagal untuk file DLL tertentu di semua jalur sistem.
sumber
Saya juga mengalami masalah ini, tetapi solusi yang tampaknya menjadi benang merah di sini, dan saya lihat di tempat lain di web, adalah "menginstal ulang paket yang dapat didistribusikan". Namun, bagi saya itu tidak berhasil, karena timbul masalah ketika menjalankan pemasang untuk produk kami (yang menginstal paket yang dapat didistribusikan) untuk menguji Visual Studio 2015 baru kami yang mengkilap.
Masalah muncul karena file DLL yang terdaftar tidak terletak di jalur instal Visual Studio (misalnya, C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ redist) dan dengan demikian belum ditambahkan ke instal. Dll api-ms-win- * ini diinstal ke jalur instal Windows 10 SDK sebagai bagian dari instalasi Visual Studio 2015 (mis. C: \ Program Files (x86) \ Windows Kits \ 10 \ Redist).
Menginstal pada Windows 10 bekerja dengan baik, tetapi menginstal pada Windows 7 diperlukan menambahkan file DLL ini untuk menginstal produk kami. Untuk informasi lebih lanjut, lihat Pembaruan untuk Universal C Runtime di Windows yang menjelaskan penambahan dependensi yang disebabkan oleh Visual Studio 2015 dan menyediakan unduhan untuk berbagai platform Windows; juga lihat Memperkenalkan Universal CRT yang menjelaskan desain ulang perpustakaan CRT. Yang menarik adalah item 6 di bawah bagian berjudul Mendistribusikan Perangkat Lunak yang menggunakan Universal CRT :
sumber
Kontribusi ini tidak benar-benar menjawab pertanyaan awal, tetapi dengan mempertimbangkan hit-rate dari utas ini saya berasumsi bahwa ada beberapa orang yang berurusan dengan masalah yang tidak dapat ditemukan oleh perpustakaan-perpustakaan API-MS-WIN-CORE.
Saya dapat memecahkan masalah di mana aplikasi saya menolak untuk memulai dengan pesan kesalahan yang API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL tidak ditemukan dengan hanya memperbarui Visual Studio.
Saya tidak berpikir bahwa lingkungan build saya (Windows 7 Pro SP1, Visual Studio Ultimate 2012) benar-benar kacau, itu berfungsi dengan baik untuk sebagian besar proyek saya. Tetapi dalam beberapa keadaan yang sangat spesifik saya mendapat pesan kesalahan (lihat di bawah).
Setelah memperbarui Visual Studio 11 dari CD-Version awal (saya lupa mencari nomor versi) ke versi 11.0.61030.00 Perbarui 4 juga proyek rusak sedang berjalan lagi.
sumber
Ini memecahkan masalah bagi saya:
Hapus paket Visual Studio 2010 yang dapat didistribusikan kembali jika Anda sudah menginstalnya, dan kemudian instal Microsoft Windows 7 SDK .
sumber
Saya memecahkan masalah. Ketika saya mendaftarkan file OCX, saya menjalankannya dengan Command Window yang telah dieksekusi sebagai administrator.
sumber
Bagi siapa saja yang datang ke sini, tetapi dengan masalah Photoshop : solusi saya adalah menghapus instalasi MS VC ++ x86 dan 64 pertama yang dapat didistribusikan kembali, keduanya. Kemudian instal yang sesuai dengan versi dan arsitektur Windows (86 atau 64).
sumber
Instalasi SQL Server Management Studio 2014 pada Windows 7 yang baru diinstal menyelesaikan masalah ini di klien kami setelah dua hari pertempuran konyol.
sumber
Saya memiliki masalah yang sama. Setelah menghabiskan berjam-jam mencari di web, saya menemukan solusi untuk saya.
Saya menyalin file file combase.dll (C: \ Windows \ System32) ke folder rilis, dan itu menyelesaikan masalah.
sumber
Saya datang ke sini dengan masalah ini terjadi, setelah mencoba menginstal OEM Windows 7 baru, upgrade ke Windows 10.
Setelah beberapa pencarian di forum Microsoft dan semacamnya, saya menemukan solusi berikut yang bekerja untuk saya:
sumber
Saya sarankan juga memeriksa berapa banyak memori yang sedang digunakan.
Ternyata ketidakmampuan untuk menemukan file DLL ini adalah gejala pertama yang ditunjukkan ketika mencoba menjalankan program (baik dijalankan atau debug) di Visual Studio.
Setelah lebih dari setengah jam dengan banyak goresan kepala, mencari di web, menjalankan Process Monitor , dan Task Manager , dan tergantung, program yang sama sekali berbeda yang telah berjalan sejak awal waktu melaporkan bahwa "memori rendah; coba hentikan beberapa program" atau semacamnya. Setelah membunuh Firefox, Thunderbird, Process Monitor, dan tergantung, semuanya bekerja kembali.
sumber
Hanya untuk mengkonfirmasi jawaban di sini, resolusi saya adalah menyalin DLL yang tidak memuat DAN file ocx yang menyertainya ke folder system32, yang menyelesaikan masalah saya.
sumber