Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 在Addin VS2008中获取项目的导入_Visual Studio 2008_Msbuild_Visual Studio Addins_Envdte - Fatal编程技术网

Visual studio 2008 在Addin VS2008中获取项目的导入

Visual studio 2008 在Addin VS2008中获取项目的导入,visual-studio-2008,msbuild,visual-studio-addins,envdte,Visual Studio 2008,Msbuild,Visual Studio Addins,Envdte,我需要得到一个列表“进口”的项目在插件VS 2008-.NET3.5 在VS2010-.NET 4.0中,我使用: EnvDTE.Project project = GetProject(); var project1 = new Microsoft.Build.Evaluation.Project(project.FullName); project1.Xml.Imports.ForEach(i => { Trace.WriteLine("\t I

我需要得到一个列表“进口”的项目在插件VS 2008-.NET3.5

在VS2010-.NET 4.0中,我使用:

EnvDTE.Project project = GetProject();
var project1 = new Microsoft.Build.Evaluation.Project(project.FullName);
project1.Xml.Imports.ForEach(i => {
                    Trace.WriteLine("\t Import Project: " + i.Project); 
});
但在VS2008中失败(未找到Microsoft.Build程序集)


有什么建议吗?

使用VS2008和.net 3.5,Microsoft.Build.BuildEngine.Engine在.net 4.0中已过时

    var engine = new Microsoft.Build.BuildEngine.Engine();
    var proj = new Microsoft.Build.BuildEngine.Project(engine);
    proj.Load(project.FullName);
    foreach (Microsoft.Build.BuildEngine.Import import in proj.Imports)
    {
        contieneTargets = import.ProjectPath.ContainsWithStringComparison("Microsoft.VisualStudio.SharePoint.targets", StringComparison.InvariantCultureIgnoreCase);
        Trace.WriteLine("\t Import Project: " + import.ProjectPath);
        if (contieneTargets) break;
    }
只有一个问题:当这个代码被执行多次时,我得到了一些错误,而项目还没有加载

System.InvalidOperationException:等效项目(项目 具有相同的全局属性和工具版本)已存在 在项目集合中,使用路径“test.csproj”。装载 等效于此项目集合,请先卸载此项目