2013-07-04 6 views
5

mam vspackage że działa dobrze w vs2012, ale kiedy zmienić cel do 4 lub 3.5 kierować starszej wersji, otrzymuję błąd kompilacji:Tworzenie VSPackage kierowania .net 3.5 i 4

Error 17 Rodzaj lub Nazwa przestrzeni nazw "PackageRegistrationAttribute" nie została znaleziona (czy brakuje instrukcji użycia lub odniesienia do zespołu?)

i nie ma odniesienia do dodania do microsoft.visualstudio.shell.10.0 i 9 Czy można utworzyć vspackage w vs2012 dla starszych wersji? Dzięki

+0

Jeśli używasz niektórych części kodu, które nie są dostępne dla frameworków .NET starszych niż ten, na który rozpoczęto projektowanie (prawdopodobnie 4.5), nie możesz dokonać konwersji projektu bez wcześniejszego usunięcia tej części. –

+0

Po prostu, jeśli odwołujesz się do jakiegoś 'dll' w twoim projekcie, ten' dll' powinien mieć odpowiednią wersję z wersją docelową. Myślę, że powinieneś spróbować wyszukać odpowiednią wersję i podać ją zamiast nowej. –

+0

@ fire-dragon: Dziękuję za komentarz, nie chcę konwertować projektu na starsze wersje, chcę tylko utworzyć vspackage do wykorzystania przez różne studia wizualne, chcę utworzyć 3 różne vspacki ukierunkowane na 3.5, 4 , 4.5 z wymaganymi zmianami w kodzie źródłowym. – Albert

Odpowiedz

1

Zamiast dodawać odwołania do zestawów Visual Studio SDK bezpośrednio, można dodać odpowiednie pakiety VSSDK. * NuGet do projektu. Na przykład, zespół powłoki, którego szukasz do kierowania .NET 3.5 (Visual Studio 2008) to VSSDK.Shell.9.

Należy zauważyć, że Visual Studio 2010 zawiera .NET 4, więc jest wysoce mało prawdopodobne, że będziesz musiał zbudować przeciwko .NET 3.5. Program Visual Studio 2008 i wcześniejszy nie obsługiwał plików VSIX do rozszerzeń pakietów, więc jeśli chcesz opracować rozszerzenie obsługujące te starsze środowiska, naprawdę trzeba będzie przerobić swoją pracę.