ความแตกต่างระหว่างที่แตกต่างกันBuild Configuration settings
เช่นCPU ใด ๆ ผสมแพลตฟอร์ม WIN32 ฯลฯใน Visual Studio
ความแตกต่างระหว่างที่แตกต่างกันBuild Configuration settings
เช่นCPU ใด ๆ ผสมแพลตฟอร์ม WIN32 ฯลฯใน Visual Studio
คำตอบ:
นี่คือลิงค์ที่ช่วยอธิบายการตั้งค่าคอนฟิกบิลด์ที่พบใน Visual Studio และไฟล์บิลด์:
โดยทั่วไปการตั้งค่าจะระบุว่าแอสเซมบลีสามารถทำงานบนแพลตฟอร์มใดได้ เมื่อเลือก AnyCPU DLL ผลลัพธ์จะถูกทำเครื่องหมายว่าสามารถทำงานได้ทุกที่ เมื่อเลือก x86 ผลลัพธ์ DLL จะถูกทำเครื่องหมายว่าสามารถทำงานบนระบบ 32 บิตเท่านั้นและจะไม่ทำงานในแอปพลิเคชันหรือกระบวนการ 64 บิต (แต่จะทำงานใน Windows 64 บิต) และอื่น ๆ ไปเรื่อย ๆ
นี่เป็นเพียงการตั้งค่าสถานะบน DLL ที่คอมไพล์แล้ว - มันไม่ได้เปลี่ยนแง่มุมอื่น ๆ ของกระบวนการคอมไพล์เลย
ตามที่แพลตฟอร์มอื่นได้อธิบายไปแล้ว (เช่น X86 สำหรับ 32 บิต x64 สำหรับ 64 บิตเท่านั้นและ 'CPU ใด ๆ ' สามารถทำงานได้ทั้งสองอย่าง) ฉันจะมุ่งเน้นMixed Platform
ว่าสิ่งนี้แตกต่างจากAny CPU
อย่างไร
ค่าAny CPU
นี้อยู่ที่การตั้งค่าระดับโปรเจ็กต์โดยที่โซลูชันในโลกแห่งความเป็นจริงเรามีโปรเจ็กต์จำนวนมากภายใต้โซลูชันเดียวและมีโอกาสที่โปรเจ็กต์บางโปรเจ็กต์ของฉันใช้Any CPU
แต่โปรเจ็กต์อื่น ๆ ใช้x86
หรือx64
สร้างแพลตฟอร์ม
ดังนั้นที่ระดับโซลูชันMixed Platform
จะถูกเลือกโดยอัตโนมัติ สิ่งนี้บ่งชี้ว่าในระหว่างการสร้าง / สร้างโซลูชันแต่ละโครงการสร้างตามแพลตฟอร์มที่เลือก
ชื่อการกำหนดค่าการสร้างไม่ได้มีความหมายมากนัก แต่จะเพิ่มจำนวนขึ้นเรื่อย ๆ หากคุณมีโปรเจ็กต์ C ++ และ C # ในโซลูชันเดียวกัน (และแย่กว่านั้นถ้าคุณมีโปรเจ็กต์มือถือด้วย) เนื่องจากโปรเจ็กต์ประเภทต่างๆใช้ชื่อการกำหนดค่าที่แตกต่างกันดังนั้นคุณจึงจบ ด้วยจำนวนมาก
เราพยายามลบการกำหนดค่าทั้งหมดที่เราไม่ได้ใช้งานอยู่เรื่อย ๆ แต่บางครั้งก็เป็นงานหนักบ่อยครั้งเมื่อคุณเพิ่มโครงการใหม่การกำหนดค่าที่ไม่ต้องการจะถูกเพิ่มกลับเข้าไปในโซลูชัน
คำแนะนำของฉันคือการตัดสินใจเกี่ยวกับการกำหนดค่าที่คุณต้องการ (โดยดูที่การตั้งค่าจริงภายใน) จากนั้นจึงลบทุกอย่างออก
From: กระทู้นี้. https://social.msdn.microsoft.com/forums/vstudio/en-US/81c72e8b-6335-4bf4-b7c0-b5c322edcaee/mixed-platforms-vs-any-cpu
เมื่อโปรเจ็กต์ทั้งหมดในโซลูชันเป็นประเภทเดียวกัน (เช่นโปรเจ็กต์ C # / VB) คอนฟิกูเรชันโซลูชันจะตรงกับคอนฟิกูเรชันโปรเจ็กต์ทุกประการ เมื่อคุณมีโปรเจ็กต์ในโซลูชันที่มีคอนฟิกูเรชัน / แพลตฟอร์มที่ไม่ตรงกัน Visual Studio จะสร้างคอนฟิกูเรชันระดับโซลูชัน "แพลตฟอร์มผสม / ดีบัก" และอาจเป็น "แพลตฟอร์มผสม / รีลีส" การกำหนดค่าเหล่านี้เป็นเพียงการแมปกับการกำหนดค่าระดับโครงการแต่ละรายการ
ตัวอย่างเช่นถ้าคุณมีโปรเจ็กต์ C # และโปรเจ็กต์ C ++ โดยทั่วไป "แพลตฟอร์มผสม / ดีบัก" จะแมปกับ "CPU / ดีบักใด ๆ " สำหรับโปรเจ็กต์ C # และ "Win32 / Debug" สำหรับโปรเจ็กต์ C ++