Ich baue eine DLL mit Visual Studio 2015 in C++.VS2015 - referenzierte Assembly ergibt C2869-Fehler
Das Visual Studio-Projekt für die DLL verweist auf eine .NET-Assembly. (Eine der Dateien im Projekt ist eine C++/CLI-Datei.) Diese .NET-Assembly wird von einer Drittpartei bereitgestellt und sie haben eine neue Version der Assembly verfügbar gemacht.
Erstellen des Projekts mit der alten Version der Assembly funktioniert gut, aber wenn ich mit der neuen Version der Assembly bauen, bekomme ich folgende Fehler:
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
Mit Blick auf den alten und neuen Versionen Die Assembly mit ildasm Ich kann sehen, dass die neue Assembly eine Enum errc
im Namespace std::errc
definiert, während die alte Assembly enum errc im Namespace std
definiert. Ähnliche Unterschiede gibt es auch für io_errc.
Es scheint, dass der Erstellungsprozess die referenzierte Assembly liest, bevor es versucht, system_error
zu kompilieren, was zu den oben genannten Fehlern führt. Kann ich etwas tun, um die neue Assembly mit Visual Studio 2015 abzugleichen?