У меня странная проблема с моей управляемой сборкой C ++. Несмотря на то, что у меня есть проект C # и управляемый проект C ++ (DLL), нацеленный на .NET 3.5, когда я компилирую управляемую сборку, ее «Runtime Version» - 2.0.
Я пытаюсь использовать одну и ту же сборку в проекте .NET 3.5 и версии CSS. .NET 4.0. CSScript отказывается работать со сборкой .NET 2.0 («Исключение времени выполнения: сборка в смешанном режиме построена для версии 'v2.0.50727' среды выполнения и не может быть загружен в среде выполнения 4.0 без дополнительной информации о конфигурации. ").
Мне удалось локализовать проблему следующим образом (вся работа выполнена в VS 2008):
- Я создаю проект C # для .NET 3.5.
- Я создаю пустой проект C ++ в том же решении.
- Добавить пустой файл .cpp в проект C ++.
- Измените свойства проекта C ++: Тип конфигурации = Динамическая библиотека (.dll), Поддержка общеязыковой среды выполнения = Поддержка общеязыковой среды выполнения (/ clr) и убедитесь, что для «общих свойств» общих свойств установлено значение 3,5 * 1014. *
- Скомпилируйте проект C ++ и добавьте его как ссылку на проект C #.
Когда вы посмотрите на свойства ссылки в проекте C #, вы увидите, что "Runtime Version" v2.0.50727. У меня вопрос, какого черта?
Почему версия 2.0? Я установил все на 3.5 ... Как заставить управляемый проект C ++ скомпилировать против .NET 3.5?
Спасибо,
Marek