C# 创建针对.net 3.5和4的VSPackage

C# 创建针对.net 3.5和4的VSPackage,c#,winforms,visual-studio-2012,C#,Winforms,Visual Studio 2012,我有一个在vs2012中运行良好的vspackage,但是当我将目标更改为4或3.5以针对较旧的版本时,我得到编译错误: 错误17找不到类型或命名空间名称“PackageRegistrationAttribute”(是否缺少using指令或程序集引用?) 对于microsoft.visualstudio.shell.10.0和9,没有要添加的参考 是否可以在vs2012中为旧版本创建vspackage? 感谢您不要直接添加对Visual Studio SDK程序集的引用,您可以将适当的VSSDK

我有一个在vs2012中运行良好的vspackage,但是当我将目标更改为4或3.5以针对较旧的版本时,我得到编译错误:

错误17找不到类型或命名空间名称“PackageRegistrationAttribute”(是否缺少using指令或程序集引用?)

对于microsoft.visualstudio.shell.10.0和9,没有要添加的参考 是否可以在vs2012中为旧版本创建vspackage?
感谢您不要直接添加对Visual Studio SDK程序集的引用,您可以将适当的VSSDK.*NuGet包添加到您的项目中。例如,您正在寻找的目标.NET3.5(VisualStudio2008)的Shell程序集是


请注意,VisualStudio2010包含.NET4,因此您不太可能需要基于.NET3.5进行构建。Visual Studio 2008及更早版本不支持使用VSIX文件来打包扩展,因此如果您想开发一个支持那些较旧环境的扩展,那么您的工作将真正停止。

如果您使用的某些代码部分不适用于比您开始项目时使用的.NET框架(我假设为4.5)更旧的.NET框架,如果之前未删除该部分,则无法转换项目。简单地说,如果您在项目中引用了某些
dll
,则此
dll
应具有与目标版本相应的版本。我认为您应该尝试搜索正确的版本并引用它,而不是新版本。@fire dragon:谢谢您的评论,我不想将项目转换为旧版本,我只想创建一个可供不同visual Studio使用的vspackage,我想创建3个不同的vspackage,目标是3.5、4、,4.5对源代码进行了必要的更改。@king:谢谢,问题在于,我在VS2012中找不到:microsoft.visualstudio.shell.10.0和9,我不知道这是我的系统的问题还是VS2012没有它,解决方案是什么。