如何解决"项目不可用" DTE中的错误

时间:2014-07-03 00:50:30

标签: c# visual-studio visual-studio-extensions envdte visual-studio-sdk

我有一个Visual Studio模板向导,最终我需要有条件地(基于用户选择)更改.NET目标:

  

// project的类型为EnvDTE.Project

     

project.Properties.Item(" TargetFrameworkMoniker")。Value =   " .NETFramework,版本= 4.5版"

问题是,在此之后,对项目属性的所有引用都会返回" Project Unavailable"。

更改.NET目标后,我需要添加一些程序集作为引用,如果项目不可用,则不再有效。

反转任务顺序(首先添加引用然后更改目标)不起作用,因为我添加了一些需要.NET 4.5的依赖项(而项目最初是.NET 4.0)。

1 个答案:

答案 0 :(得分:2)

好的,这就是我解决的问题

  

project.Properties.Item(" TargetFrameworkMoniker")。Value =   " .NETFramework,版本= 4.5版&#34 ;;

     

project =(Project)((Array)(Dte.ActiveSolutionProjects))。GetValue(0);

第二行使用以前初始化的Dte实例获取项目的新副本(这个新项目实例镜像了前一个实例的所有更改(甚至那些未保存的),因此已经有了目标框架== 4.5 !! )。

新实例可用于添加项目引用等。