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" の同等のプロジェクト (グローバル プロパティとツール バージョンが同じプロジェクト) がプロジェクト コレクションに既に存在します。このプロジェクト コレクションに同等のものをロードするには、最初にこのプロジェクトをアンロードしてください。