Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

หากคุณเห็น “The application has failed to start because its side-by-side configuration is incorrect ” เมื่อพยายามเริ่มแอพใน Windows ซึ่งหมายความว่าโปรแกรมไม่สามารถเริ่มทำงานได้เนื่องจากการขึ้นต่อกันที่ขาดหายไป ส่วนประกอบที่จำเป็นในการเรียกใช้แอพได้รับความเสียหายหรือไม่ได้ติดตั้งบนคอมพิวเตอร์ ในบทความนี้ เราจะแสดงวิธีตรวจสอบไฟล์ Manifest ของแอปพลิเคชันและแก้ไขการขึ้นต่อกันโดยค้นหาไลบรารีหรือแพ็คเกจที่จะติดตั้งเพื่อให้แอปเริ่มทำงานได้อย่างถูกต้อง

ปัญหาส่วนใหญ่มักเกิดขึ้นเมื่อเรียกใช้แอปหรือเกมแบบพกพาเนื่องจากใช้ไลบรารีของ Microsoft Visual C++ Redistributable (vc_redist.x86.exe, vc_redist.x64.exe) ที่ไม่ได้ติดตั้งบนคอมพิวเตอร์หรือเสียหาย อย่างไรก็ตาม ก่อนที่จะติดตั้งเวอร์ชัน Visual C++ Redistributable ทั้งหมดบนคอมพิวเตอร์ของคุณโดยไม่ต้องคิด เราจะพยายามค้นหาว่าไลบรารีใดที่แอปต้องการจากไฟล์รายการ

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

จะวิเคราะห์รายการแอพใน Windows ได้อย่างไร

มาลองเริ่ม makeappx.exe แอปพลิเคชันบนคอมพิวเตอร์ที่ไม่ได้ติดตั้ง Windows SDK

Makeappx.exe อนุญาตให้สร้างแพ็คเกจแอป UWP ในรูปแบบ *.mix, *.appx, *.msixbundle หรือ *.appxbundle

เห็นได้ชัดว่าเครื่องมือไม่เริ่มทำงานและแสดงข้อผิดพลาด:

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

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

หมายเหตุ ทรัพยากรไม่พร้อมใช้งาน เป็นข้อความชี้ตรงถึงความจริงที่ว่าแอปขาดบางสิ่งที่จะเรียกใช้

รายการส่วนประกอบและไลบรารีที่แอปจำเป็นต้องเรียกใช้มีระบุไว้ในรายการแอป ไฟล์ Manifest ของแอปอาจจัดเก็บเป็นไฟล์ XML แยกต่างหากหรือฝังลงในไฟล์ปฏิบัติการ (.exe) ของแอปพลิเคชันได้โดยตรง

คุณสามารถดูรายการไฟล์ EXE ได้โดยใช้ มุมมองมานิเฟสต์ . ฟรี หรือ แฮ็กเกอร์ทรัพยากร เครื่องมือ

เราแสดงวิธีใช้ Resource Hacker เพื่อดูและแก้ไขรายการแอปในบทความจะระงับการแจ้งเตือน UAC ได้อย่างไร

อย่างที่คุณเห็น การพึ่งพาอาศัยกัน ส่วนในรายการแอปมีการอ้างอิงถึง Microsoft.Windows.Build.Appx.AppxPackaging.dll . แอปพลิเคชันไม่สามารถทำงานได้หากไม่มีไฟล์ไลบรารีนี้

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

คุณยังสามารถติดตามการเริ่มต้นแอปพลิเคชันโดยใช้ SxSTrace.exe

เปิดพรอมต์คำสั่งใหม่และเริ่มการรวบรวมข้อมูลโดยใช้คำสั่ง :

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...

จากนั้นเรียกใช้แอปที่มีปัญหา เมื่อ “The application has failed to start because its side-by-side configuration is incorrect ” ปรากฏขึ้น ให้หยุดการติดตามโดยกด ENTER ในหน้าต่าง sxstrace

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

แปลงไฟล์บันทึก ETL ให้อยู่ในรูปแบบ TXT ที่สะดวกยิ่งขึ้น:

sxstrace.exe Parse -logfile:c:\tmp\makeapp_sxtracesxs.etl -outfile:c:\tmp\makeapp_sxtracesxs.txt

เปิดไฟล์ TXT ที่เป็นผลลัพธ์ใน Notepad (หรือโปรแกรมแก้ไขข้อความอื่น ๆ ) และค้นหาบรรทัดที่มีข้อผิดพลาด นอกจากนี้คุณยังสามารถ grep เพื่อหาข้อผิดพลาดในไฟล์ข้อความด้วย PowerShell

Get-Content c:\tmp\makeapp_sxtracesxs.txt | Where-Object { $_.Contains("ERROR") }

ดังที่คุณเห็น ข้อผิดพลาดชี้ไปที่ไฟล์ DLL เดียวกันกับที่แสดงในรายการแอป:

INFO: End assembly probing.
ERROR: Cannot resolve reference Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0".
ERROR: Activation Context generation failed.

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

นอกจากนี้ คุณสามารถวิเคราะห์ข้อผิดพลาดการพึ่งพา SideBySide ด้วยบันทึกเหตุการณ์ หากเกิดข้อผิดพลาด เหตุการณ์ต่อไปนี้จะถูกเขียนลงในบันทึกของแอปพลิเคชัน:

EventID: 33
Source: SideBySide

คำอธิบายข้อผิดพลาดกล่าวถึงไฟล์ไลบรารีหรือส่วนประกอบที่จำเป็นในการเรียกใช้แอป

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.

แอปพลิเคชันไม่สามารถเริ่มต้นได้เนื่องจากการกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง

จากนั้นเปิด Google และค้นหาข้อมูลเกี่ยวกับ dll นี้ ในตัวอย่างของฉัน ไฟล์ไลบรารีเป็นส่วนหนึ่งของ MSIX Toolkit จาก Windows SDK (Redist.x86) ดาวน์โหลดและติดตั้งส่วนประกอบที่คุณพบเพื่อให้แอปเริ่มทำงานได้อย่างถูกต้อง

การแก้ไขปัญหา Microsoft Visual C++ แบบแจกจ่ายต่อได้

ในกรณีส่วนใหญ่ ข้อผิดพลาด "การกำหนดค่าแบบเคียงข้างกันไม่ถูกต้อง" เกี่ยวข้องกับไลบรารี Microsoft Visual C++ Redistributable เวอร์ชันที่ขาดหายไปหรือเสียหาย

ในกรณีนี้ ข้อผิดพลาดต่อไปนี้จะปรากฏทั้งในบันทึก sxstrace และในรายการแอป:

Error: Cannot resolve reference ERROR: Cannot resolve reference Microsoft.VC90.MFC, processorArchitecture="amd64", publicKeyToken="1fc8b3b9a1e18e3b", type="win32",version="9.0.21022.8".

เราได้รับข้อมูลต่อไปนี้จากข้อความนี้:แอปต้องใช้ Microsoft.VC90.MFC 9.0.21022 x64 บิต การค้นหาอย่างรวดเร็วใน Google แสดงให้เห็นว่า Microsoft Visual C++ 2008 Redistributable . ดาวน์โหลดและติดตั้งเวอร์ชัน MVC นี้จากเว็บไซต์ของ Microsoft

ในทำนองเดียวกัน คุณสามารถรับเวอร์ชัน Microsoft Visual C++ อื่นๆ ตามค่าใน เวอร์ชัน ฟิลด์:

Microsoft Visual C++ Redistributable สำหรับ Visual Studio 2015, 2017 และ 2019.14.0.x หรือใหม่กว่าMicrosoft Visual C++ 2013 Redistributable12.0.xMicrosoft Visual C++ 2012 Redistributable11.0.xMicrosoft Visual C++ 2010 Redistributable10.0.xMicrosoft Visual C++ 2008 Redistributable9.0 x

ซ่อมแซมไฟล์ระบบใน Windows

หากคุณเข้าใจว่าข้อผิดพลาดในการเริ่มต้นแอปเกี่ยวข้องกับไฟล์ระบบ Windows ไฟล์ใดไฟล์หนึ่ง ให้ตรวจสอบและซ่อมแซมไฟล์อิมเมจระบบและส่วนประกอบ Windows โดยใช้ SFC และ DISM:

sfc /scannow
DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth