1

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

如何访问引用的项目?

4

1 回答 1

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 的一部分。

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

于 2012-08-24T02:39:02.360 回答