2013-07-04 15 views
5

ho un VSPackage che funziona bene in vs2012, ma quando cambio l'obiettivo di 4 o 3.5 per indirizzare versione precedente, ottengo errore di compilazione:Creazione VSPackage mira .net 3.5 e 4

Errore 17 Il tipo o nome del namespace 'PackageRegistrationAttribute' non è stato trovato (che le manca un un riferimento all'assembly direttiva using o?)

e non v'è alcun riferimento da aggiungere per microsoft.visualstudio.shell.10.0 e 9 è possibile creare un vspackage in vs2012 per le versioni precedenti? Grazie

+0

Se si utilizzano alcune parti del codice che non sono disponibili per i framework .NET precedenti a quello su cui è stato avviato il progetto (suppongo 4.5), non è possibile convertire il progetto senza rimuovere in precedenza tale parte. –

+0

Parlando semplicemente, se fai riferimento ad alcuni 'dll' nel tuo progetto, questo' dll' dovrebbe avere una versione appropriata con la versione di destinazione. Penso che dovresti provare a cercare la versione corretta e farne riferimento invece della nuova versione. –

+0

@ fire-dragon: Grazie per il tuo commento, non voglio convertire il progetto in versioni precedenti, voglio solo creare un vspackage per essere utilizzabile da diversi studi visivi, voglio creare 3 diversi vspackages per il targeting 3.5, 4 4.5 con le modifiche richieste nel codice sorgente. – Albert

risposta

1

Piuttosto che aggiungere direttamente un riferimento agli assembly SDK di Visual Studio, è possibile aggiungere i pacchetti VSSDK appropriati. * NuGet al progetto. Ad esempio, l'assembly Shell che si sta cercando per il target .NET 3.5 (Visual Studio 2008) è VSSDK.Shell.9.

Si noti che Visual Studio 2010 include .NET 4, quindi è altamente improbabile che sarà necessario creare contro .NET 3.5. Visual Studio 2008 e precedenti non supportavano i file VSIX per le estensioni dei pacchetti, quindi avrai davvero il tuo lavoro da risolvere se vuoi sviluppare un'estensione che supporti quegli ambienti più vecchi.