2010-06-08 16 views
10

Pracuję nad projektem C# 4.0 w VS2010 i potrzebne do korzystania z niektórych starszych bibliotek DLL zawierających formantów, które zostały utworzone w C# 3.5 na VS2008. Kiedy po raz pierwszy dodać dll do odniesienia, byłem w stanie zobaczyć nazw poprzez intellisense i utworzyć wystąpienie jednej z kontroli, ale kiedy idę do budowy, to daje mi następujący błąd:Biblioteki referencyjne nie ładuje się w Visual Studio 2010

The type or namespace name 'BCA' could not be found (are you missing a using directive or an assembly reference?) 

I już mam do mieć dyrektywy użycia dla tej przestrzeni nazw, która jest teraz podkreślona na czerwono, pokazując, że VS nie może go znaleźć. A teraz intellisense w ogóle nie odbierze tego obszaru nazw.

Próbowałem nawet dodać kontrolki do przybornika (który działał), ale kiedy przeciągnę je do GUI, mówi, że nie może zlokalizować odniesienia DLL, mimo że oczywiście wie, gdzie to jest.

Próbowałem nawet zmienić ramę docelową na 3.5, ale nadal z tymi samymi wynikami.

Jakieś przemyślenia, dlaczego tak się dzieje?

Edit - Mam informuje, że w argumentach csc.exe że wyjścia VS, to nie ma żadnego/wpisy odniesienia dla bibliotek DLL próbuję użyć. Kiedy tworzę ten sam podstawowy projekt w VS2008, te wpisy istnieją. Ponadto mogę z powodzeniem odwoływać się do bibliotek DLL w projekcie DLL w VS2010 ... wydaje się, że są to tylko projekty WinForm, które nie działają.

+0

To może być oczywiste pytanie, ale są pliki DLL zdecydowanie nadal w tym samym miejscu na dysku (lub w GAC), tak jak wtedy, gdy pierwotnie odnosił się do nich? –

+0

Inną możliwą oczywistą - czy ten typ w zespole został zaktualizowany? W takim przypadku może plik .refresh nadal wskazuje na przestarzały plik .DLL. –

+0

Tak, na pewno się nie poruszyły. I nic nie zostało zaktualizowane. –

Odpowiedz

21

Okazało się, że miało to związek z tym, że VS2010 domyślnie korzysta z profilu klienta .NET 4 , jak tylko zmieniłem go na zwykły profil, z którego został zbudowany. Jest to dzień zmarnowany ...

+2

Dzięki twojemu postowi zmarnowałem tylko kilka godzin pracy ... – Peter

+0

Dzięki temu działał ten sam problem i twoje rozwiązanie działa dla mnie ... – Mike

2

zobaczyć ramy docelowej .. w moim projekcie, wynosiła 4,0 profilu klienta, E dll odniesienia był w 4,0

0

Próbowałem Build-> Czyste rozwiązanie i wtedy można dodać odwołanie .

+0

Więc nie ma to związku z profilem? –

0

Miałem podobny problem, ale profile nie były problemem, więc problem polegał na tym, że moja biblioteka klas używa specjalnego pakietu NuGet, który ma zależność ... więc I instaluje pakiet zależności w docelowym projekcie i dodał odniesienie do projektu i działa!

Ale nie jestem pewien, czy istnieje lepsze rozwiązanie tego problemu ??? dla mnie VS powinien być wystarczająco inteligentny, aby przenosić te biblioteki DLL wraz z referencjami. (Sprawdziłem już, że "Copy Local" jest ustawione na True)