Нужно ли запускать библиотеку классов CLR в Win32? - PullRequest
0 голосов
/ 30 октября 2018

Я создал проект CLR в VS2017.

В стоимость входит:

  • Библиотека классов CLR (C ++) .NET Framework 4.5
  • C # ConsoleApp

В библиотеке определен простой класс ref. Класс вызывается из моего кода C #. Я в порядке с его производительностью, но он не всегда работает.

Это зависит от того, как я его запускаю.

  • "Отладка" и "x86" работает
  • «Отладка» и «x64» не работают
  • "Release" и "x86" работает
  • «Release» и «x64» не работают

Таким образом, в Debug and Release он работает только при запуске библиотеки классов CLR в Win32.

Я ошибаюсь или это предполагаемое поведение?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Чтобы ответить на мой вопрос.

Ганс Пассант писал:

Изменение платформы решения влияет только на проект C ++ / CLI, но не на проект C #. Щелкните правой кнопкой мыши проект C #> Свойства> вкладка «Сборка», чтобы выбрать нужный джиттер. Снимите флажок «Предпочитать 32-разрядный» для конфигурации решения x64. Снова для конфигурации выпуска.

Это сработало, когда я снял флажок «Предпочитать 32-битный» в свойствах проекта C # в разделе «Сборка». Спасибо!

0 голосов
/ 30 октября 2018

Обычно целью использования языка C ++ / CLI (я полагаю, это то, что вы подразумеваете под «библиотекой CLR») является использование как нативных, так и .Net объектов. Из-за нативного кода бинарная библиотека привязана к 32-битной или 64-битной платформе. По-видимому, в вашем случае это 32-разрядный (x86).

...