Конфігурація збірки: змішана платформа проти будь-якого процесора


92

Яка різниця між різними, Build Configuration settingsнаприклад, будь-яким процесором, змішаною платформою, WIN32 тощо у Visual Studio.

Відповіді:


42

Ось посилання, яке допомагає пояснити налаштування конфігурації збірки, знайдені у Visual Studio та файлах збірки:

http://web.archive.org/web/20151215192101/http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/

В основному в налаштуваннях вказано, на якій платформі може працювати збірка. Коли вибрано AnyCPU, отримана DLL позначається як здатна працювати в будь-якому місці; коли вибрано x86, результуюча DLL позначається як здатна працювати лише на 32-розрядних системах і не запускатиметься в 64-розрядних додатках або процесах (але працюватиме в 64-розрядної Windows;) тощо тощо.

Це просто встановлює прапори для скомпільованої DLL - це зовсім не змінює інших аспектів процесу компіляції.


1
Також перегляньте це посилання щодо взаємодії з файлами рішення: social.msdn.microsoft.com/forums/vstudio/en-US/…
J. Polfer,

49
Здається, це не пояснює "Змішані платформи".
Загроза

2
@Menace Моє розуміння (з втраченого посилання) полягає в тому, що коли ви відкриваєте рішення, в якому всі проекти не мають однакової конфігурації, Visual Studio показує / вибирає конфігурацію рішення як змішані платформи. (Якщо я зможу знайти оригінальне посилання, я
зміню

8
Посилання visualstudiohacks.com/articles/… мертве.
Ага.

40

Як вже пояснювали інші платформи. (тобто X86 для 32-розрядної версії, x64 - лише для 64-бітної версії, а "Будь-який процесор" може працювати в обох). Я зосереджусь на Mixed Platformтому, чим це відрізняється Any CPU.

Це Any CPUна рівні проекту, де, як і в реальному рішенні, у нас є кілька проектів під одним рішенням, і вони, ймовірно, використовують деякі мої проекти Any CPU, а інші використовують платформу x86або x64build.

Тож на рівні рішення Mixed Platformбуде обрано автоматично . це вказує на те, що під час рішення Build / Rebuild кожен проект будується на основі обраної ними платформи.


17

Назви конфігурацій збірки означають не так вже й багато - вони поширюються, якщо у вас є проекти C ++ і C # в одному і тому ж рішенні (і навіть гірше, якщо у вас є мобільні проекти), оскільки різні типи проектів використовують різні імена конфігурацій, тому ви закінчуєте багато з них.

Ми намагаємось продовжувати видаляти всі конфігурації, які ми не використовуємо, але це важка робота, іноді так часто, коли ви додаєте новий проект, небажані конфігурації повертаються до рішення.

Мої рекомендації - вирішити, які конфігурації вам потрібні (переглянувши фактичні налаштування в них), а потім видалити все інше.


10

Від: цей пост. 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 ++, як правило, "Змішані платформи / налагодження" відображається на "Будь-який процесор / налагодження" для проекту C # та "Win32 / Debug" для проекту C ++.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.