Собрать универсальное C# приложение

174
03 мая 2018, 06:38

Недавно сделал для себя открытие - при сборке .NET-приложения я могу выбрать разрядность целевой платформы. Полез читать в интернеты, и все, что я понял - так это то, что ничего я не понял.

Сам я java-ист. С детства думал, что не важно, для чего собирать, важно, какой разрядности jvm. Но тут, видимо, все иначе...

Прошу помочь с такой проблемой:

Нужно собрать приложение, которое использует стороннюю c++ библиотеку. Для библиотеки доступны 32 и 64-битные .dll-ки. От приложения не требуется сверхпроизводительности, так что и 32-битная версия меня устроит.

Могу ли я собрать свой проект как 32-битный с использованием лишь 32-битной .dll и рассчитывать на то, что все это дело будет работать как в 32-битной, так и в 64-битной системе? И если нет, то как лучше сделать?

И пара второстепенных вопросов, которые помогут мне понять, что я делаю:

Собранное для 64-битной системы .NET приложение ведь будет невозможно запустить в 32-битной системе, или же это работает слегка иначе, чем с нативными приложениями?

Верно ли я понимаю, что приложения, собранные для систем разной разрядности, запускаются на разных виртуальных машинах, и, как следствие, на 64-битной версии windows установлены виртуальные машины CLR двух разрядностей?

Answer 1

Все именно так как и кажется: 32х-разрядная версия будет работать где угодно, 64х-разрядная потребует 64х-разрядную систему.

Однако, если у вас есть обе версии чужой библиотеки - то лучше оставить свою сборку не привязанной к разрядности (AnyCPU), а при загрузке библиотеки загружать ту, которая соответствует разрядности текущего процесса.

Подробности - вот тут: Подгрузка разных dll в зависимости от разрядности системы

READ ALSO
C# Ошибка в decrypt

C# Ошибка в decrypt

Как справиться с ошибкой

192
Wordpress не удается подключить стили

Wordpress не удается подключить стили

Все перепроверил несколько разНе знаю где ошибка

197
Как сделать равноудаленные inline блоки?

Как сделать равноудаленные inline блоки?

БЕЗ ФЛЕКСБОКСА И ГРИДОВ, нужна бОльшая поддержка браузеров

236
Как я могу сделать div с irregular shapes с помощью css3 и html5?

Как я могу сделать div с irregular shapes с помощью css3 и html5?

Мне интересно, есть ли возможность построить div с нерегулярными фигурами, что-то,аналогичные картам (например, Гренландия, Европа, Африка)

197