6

Stworzyłem nowy projekt C++/CLI w Visual Studio 2012, z .NET 2.0 wybranym jako framework na stronie tworzenia projektu. Zweryfikowałem "Zewnętrzne zależności" (mscorlib.dll, System.Data.dll, System.dll i System.XML.dll), pokazując "Ścieżkę" jako c:\Windows\Microsoft.NET\Framework\v2.0.50727\*.Nowy projekt .NET 2.0 C++/CLI ma ukrytą zależność od mscorlib v4?

Dodając odwołanie do tego projektu z projektu w tym samym roztworze C# .NET 2.0, w czasie kompilacji kompilator nie może połączyć przeciwko moim C++ biblioteki z powodu następującego błędu:

Warning 2 The primary reference "D:\GIT\EasyBCD\Release\Win32Interop.dll" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets 1578

Jednak, jak już powiedział, referencje w projekcie "Win32Interop" wyraźnie wskazują, że użyto v2.0, a sam plik projektu zawiera <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>, tak jak powinien.

Dlaczego program Visual Studio 2012 sprawia mi tyle trudu?

EDYTOWANIE

Tajemnica pogłębia się. Kiedy próbuje zdjąć i ponownie dodać referencje .NET w projekcie C++/CLI, to co pokazuje:

Adding new dependency

Jak widać, na górze jest napisane „Kierowanie: .NET Framework 2.0 "i" Wersja "wskazuje, że wybieram wersję" 2.0.0.0 ".

Jednak po kliknięciu OK, to co lista odnośników wygląda następująco:

.NET dependency list

Docelowa struktura pozostaje”.NETFramework, Version = v2.0" , ale poszczególne referencje wskazują, że każda wersja Używa się "4.0.0.0" (wraz z tokenami klucza publicznego dla tej wersji pliku).

Jednak okno dialogowe właściwości podczas wybierania każdej referencji absolutnie utrzymuje, że używany jest plik v2.0. Kogo wierzyć? Co robić?

+1

Run ildasm.exe na zespole Win32Interop.dll zweryfikowania założeń. –

+0

Masz rację, używa v4. Proszę jednak zapoznać się z moim zaktualizowanym pytaniem - nie mogę sprawić, by było ono używane w inny sposób. –

+0

Bardzo trudno zgadnąć, jak to mogło pójść nie tak. Opublikuj plik vcxproj w usłudze plików, jeśli chcesz, aby ktoś go obejrzał. –

Odpowiedz

Powiązane problemy