2017-01-12 4 views
0

Я создаю DLL с Visual Studio 2015, на C++.VS2015 - ссылочная сборка дает ошибку C2869

Проект Visual Studio для DLL ссылается на сборку .NET. (Один из файлов в проекте - файл C++/CLI.) Эта сборка .NET предоставляется третьей стороной, и они предоставили новую версию сборки.

Создание проекта со старой версией сборки отлично работает, но когда я строю с новой версией сборки, я получаю следующие ошибки:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\system_error(24): error C2869: 'std::errc': has already been defined to be a namespace 
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\system_error(109): error C2869: 'std::io_errc': has already been defined to be a namespace 

Глядя на старые и новые версии в сборке с ildasm я вижу, что новая сборка определяет перечисление errc в пространстве имен std::errc, тогда как старая сборка определяет enum errc в пространстве имен std. Аналогичные различия существуют и для io_errc.

Похоже, что процесс сборки считывает ссылочную сборку, прежде чем попытается скомпилировать system_error, что приведет к ошибкам выше. Есть ли что-нибудь, что я могу сделать, чтобы согласовать новую сборку с Visual Studio 2015?

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^