在MSBuild文件中,如何获取引用的项目?

时间:2012-08-23 21:57:42

标签: c# visual-studio-2010 msbuild

我有一个MSBuild脚本文件,我想对文件中导入的每个项目执行操作。

如何访问引用的项目?

1 个答案:

答案 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的ProjectCollectionProject类型,这是MSBuild的一部分。

注意,理论上项目引用取决于构建参数,例如:您可以引用Debug配置的调试库,但不能用于发布。因此,在初始化ProjectCollection时,您必须传递所需的参数。