2012-08-23 35 views

回答

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); 
     } 
    } 

上面的代码使用ProjectCollectionProject类型从Microsoft.Build.dll,这是的MSBuild的一部分。

注意,在理论上,项目参考依赖于构建参数,例如,您可以参考调试配置的调试库,但不能发布。因此,在初始化ProjectCollection时,你必须传递你想要的参数。

+0

感谢您的回答,其实我想在一个最终的可部署包中组合多个项目。通常情况下,可执行的bin文件夹将包含一切,但我的“应用程序”实际上是一套可执行文件,必须全部打包并部署在一起。我可以简单地更改目标文件夹,将它们放在一个共同的文件夹中,但发现它很烦琐且容易出错,并且正在寻找一种自动执行此过程的方法。 – Newtopian

+0

@Newtopian,这是与您最初发布的内容不同的问题。请为此打开一个新问题。 –

+0

的确如此,我想到了一个解决问题的方法。我只是想给你一些关于它的起源的看法。我仍然会尝试,但我已经在一个不同的问题在这里张贴更广泛的问题http://stackoverflow.com/questions/12113347/how-to-assemble-multiple-net-executables-in-a-single-应用程序套件包以防万一出现更好的解决方案 – Newtopian

相关问题