2017-01-12 2 views
0

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?

Antwort

Verwandte Themen