2009-03-04 148 views
3

有沒有一些方法可以從自定義任務訪問msbuild屬性的值?我知道我可以將它們全部發送出去,但是不要試圖從tfs構建中實現這一點。如何從自定義任務獲取msbuild屬性的值?

或者是否有一些方法可以訪問當前正在運行的「構建腳本」?也許就像一個對象模型,從那裏得到我需要的東西?

回答

2

這應該做的工作。

public override bool Execute() 
    { 
    string projectFile = BuildEngine.ProjectFileOfTaskNode; 

    Engine buildEngine = new Engine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()); 

    Project project = new Project(buildEngine); 
    project.Load(projectFile); 
    foreach(var o in project.EvaluatedProperties) 
    { 
     // Use properties 
    } 

    return true; 
    } 
+0

這有幫助,但我不得不創建一個新的引擎。 BuildEngine屬性只包含一個EngineProxy,我無法對引擎進行處理......而且當我創建了一個新的引擎而非屬性vas評估的引擎時。所以我剛剛拿出$(某物)。建議? :) – Oddleif 2009-03-04 09:53:34

相關問題