我有一个MSBuild脚本文件,我想对文件中导入的每个项目执行操作。
如何访问引用的项目?
答案 0 :(得分:1)
目前尚不清楚您希望在每个项目上执行哪种操作。假设您只想打印出引用项目的路径,下面是示例代码:
Dictionary<string, string> globalProperties = new Dictionary<string, string>();
globalProperties.Add("Configuraion", "Debug");
globalProperties.Add("Platform", "AnyCPU");
ProjectCollection pc = new ProjectCollection(globalProperties);
Project sln = pc.LoadProject(@"MyProject.csproj", "4.0");
foreach (ProjectItem pi in sln.Items)
{
if (pi.ItemType == "ProjectReference")
{
Console.WriteLine(pi.EvaluatedInclude);
}
}
上面的代码使用来自Microsoft.Build.dll的ProjectCollection和Project类型,这是MSBuild的一部分。
注意,理论上项目引用取决于构建参数,例如:您可以引用Debug配置的调试库,但不能用于发布。因此,在初始化ProjectCollection时,您必须传递所需的参数。