Nếu bạn thấy “The application has failed to start because its side-by-side configuration is incorrect
”Khi cố gắng khởi động ứng dụng trong Windows, điều này có nghĩa là chương trình không thể khởi động do thiếu phần phụ thuộc. Các thành phần cần thiết để chạy ứng dụng bị hỏng hoặc không được cài đặt trên máy tính. Trong bài viết này, chúng tôi sẽ hướng dẫn cách kiểm tra tệp kê khai của ứng dụng và giải quyết các phần phụ thuộc bằng cách tìm thư viện hoặc gói được cài đặt để ứng dụng khởi động chính xác.
Thông thường, sự cố xảy ra khi chạy các ứng dụng hoặc trò chơi di động vì chúng sử dụng thư viện của Microsoft Visual C ++ Redistributable (vc_redist.x86.exe, vc_redist.x64.exe) không được cài đặt trên máy tính hoặc bị hỏng. Tuy nhiên, trước khi cài đặt tất cả các phiên bản Visual C ++ Redistributable trên máy tính của bạn mà không cần suy nghĩ, chúng tôi sẽ cố gắng tìm ra chính xác thư viện mà ứng dụng cần bằng tệp kê khai của nó.
Cách phân tích tệp kê khai ứng dụng trong Windows?
Hãy thử khởi động makeappx.exe
ứng dụng trên máy tính chưa cài đặt Windows SDK.
Rõ ràng, công cụ không khởi động và trả về lỗi:
Program 'makeappx.exe' failed to run: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail + CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException + FullyQualifiedErrorId : NativeCommandFailed
Lưu ý Tài nguyên không khả dụng , nó trực tiếp chỉ ra thực tế rằng ứng dụng đang thiếu thứ gì đó để chạy.
Danh sách các thành phần và thư viện mà một ứng dụng cần chạy được chỉ định trong tệp kê khai ứng dụng. Tệp kê khai ứng dụng có thể được lưu trữ dưới dạng tệp XML riêng biệt hoặc được nhúng trực tiếp vào tệp thực thi (.exe) của ứng dụng.
Bạn có thể xem tệp kê khai tệp EXE bằng cách sử dụng Chế độ xem tệp kê khai miễn phí hoặc Kẻ tấn công tài nguyên công cụ.
Chúng tôi đã hướng dẫn cách sử dụng Resource Hacker để xem và chỉnh sửa tệp kê khai ứng dụng trong bài viết Cách chặn lời nhắc nâng cao UAC ?.Như bạn có thể thấy, Sự phụ thuộc phần trong tệp kê khai ứng dụng chứa tham chiếu đến Microsoft.Windows.Build.Appx.AppxPackaging.dll . Ứng dụng không thể hoạt động nếu không có tệp thư viện này.
Bạn cũng có thể theo dõi quá trình khởi động ứng dụng bằng SxSTrace.exe.
Mở dấu nhắc lệnh mới và bắt đầu thu thập dữ liệu bằng lệnh:
sxstrace.exe Trace -logfile:c:\tmp\makeapp_sxtracesxs.etl
Tracing started. Trace will be saved to file c:\tmp\makeapp_sxtracesxs.etl. Press Enter to stop tracing...
Sau đó chạy ứng dụng sự cố. Khi “The application has failed to start because its side-by-side configuration is incorrect
”Xuất hiện lỗi, dừng truy tìm bằng cách nhấn ENTER trong cửa sổ sxstrace.
Chuyển đổi tệp nhật ký ETL sang định dạng TXT thuận tiện hơn:
sxstrace.exe Parse -logfile:c:\tmp\makeapp_sxtracesxs.etl -outfile:c:\tmp\makeapp_sxtracesxs.txt
Mở tệp TXT kết quả trong Notepad (hoặc bất kỳ trình soạn thảo văn bản nào khác) và tìm các dòng có lỗi. Bạn cũng có thể tìm lỗi trong tệp văn bản bằng PowerShell
Get-Content c:\tmp\makeapp_sxtracesxs.txt | Where-Object { $_.Contains("ERROR") }
Như bạn có thể thấy, lỗi trỏ đến cùng một tệp DLL được hiển thị trong tệp kê khai ứng dụng:
INFO: End assembly probing. ERROR: Cannot resolve reference Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0". ERROR: Activation Context generation failed.
Ngoài ra, bạn có thể phân tích lỗi phụ thuộc SideBySide với nhật ký sự kiện. Nếu lỗi xảy ra, sự kiện sau được ghi vào Nhật ký ứng dụng:
EventID: 33 Source: SideBySide
Mô tả lỗi đề cập đến tệp thư viện hoặc thành phần cần thiết để chạy ứng dụng.
Activation context generation failed for "C:\ps\test\makeappx.exe". Dependent Assembly Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0" could not be found. Please use sxstrace.exe for detailed diagnosis.
Sau đó, mở Google và tìm kiếm thông tin trên dll này. Trong ví dụ của tôi, tệp thư viện là một phần của Bộ công cụ MSIX từ Windows SDK (Redist.x86). Tải xuống và cài đặt các thành phần bạn đã tìm thấy để cho phép ứng dụng khởi động chính xác.
Khắc phục sự cố có thể phân phối lại của Microsoft Visual C ++
Trong hầu hết các trường hợp, lỗi “cấu hình song song không chính xác” có liên quan đến phiên bản bị thiếu hoặc bị hỏng của thư viện Microsoft Visual C ++ Redistributable.
Trong trường hợp này, lỗi sau sẽ xuất hiện cả trong nhật ký sxstrace và trong tệp kê khai ứng dụng:
Error: Cannot resolve reference ERROR: Cannot resolve reference Microsoft.VC90.MFC, processorArchitecture="amd64", publicKeyToken="1fc8b3b9a1e18e3b", type="win32",version="9.0.21022.8".
Chúng tôi nhận được thông tin sau từ thông báo này:ứng dụng cần có Microsoft.VC90.MFC 9.0.21022 x64-bit. Tìm kiếm nhanh trong Google cho thấy rằng đó là Microsoft Visual C ++ 2008 Redistributable . Tải xuống và cài đặt phiên bản MVC này từ trang web của Microsoft.
Theo cách tương tự, bạn có thể tải các phiên bản Microsoft Visual C ++ khác theo giá trị của chúng trong Phiên bản lĩnh vực:
Microsoft Visual C ++ Redistributable cho Visual Studio 2015, 2017 và 2019.14.0.x hoặc mới hơnMicrosoft Visual C ++ 2013 Redistributable12.0.xMicrosoft Visual C ++ 2012 Redistributable11.0.xMicrosoft Visual C ++ 2010 Redistributable10.0.xMicrosoft Visual C ++ 2008 Redistributable9.0. xSửa chữa Tệp Hệ thống trong Windows
Nếu bạn hiểu rằng lỗi khởi động ứng dụng liên quan đến một trong các tệp hệ thống Windows, hãy kiểm tra và sửa chữa các thành phần và tệp hình ảnh hệ thống Windows bằng SFC và DISM:
sfc /scannow
DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth