2012-08-23 36 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

相關問題