Visual studio 2008 在Addin VS2008中获取项目的导入
我需要得到一个列表“进口”的项目在插件VS 2008-.NET3.5 在VS2010-.NET 4.0中,我使用: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
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”。装载
等效于此项目集合,请先卸载此项目