2010-03-19 58 views
1

我已經創建了一個MSBuild任務來構建我的項目,但由於各種原因,我不想切換到NAnt。NAnt中的MSBuild的XmlMassUpdate任務?

是否有一些任務等同於NAnt中的MSBuild的XmlMassUpdate?如果可能,我想使用與XmlMassUpdate一起使用的相同的xml替換文件。

(約XmlMassUpdate更多的信息,這裏有一個簡短的用法我上計算器的網站上發現:MSBuild example

我xmlPeek/xmlPoke任務嘗試,但不能讓他們在一個替換文件遍歷樹的路徑。 ..

回答

0

事實證明,我只需要將代碼從tigris的實現調整到適用於NAnt的代碼即可。

的解決方案是有點過長的,因此沒有意義它張貼在這裏的全部,但這些將是步驟...

Tigris MsBuildTasks site既有二進制文件,併爲每一個任務的源代碼。

只要找到XmlMassUpdate的執行,看看它是如何做,並在任務庫中創建楠任務類,像這樣:

[TaskName("XmlMassUpdate")] 
public class XmlMassUpdate : Task 
{ 
    [TaskAttribute("ContentFile", Required=true)] 
    public string ContentFile { get; set; } 
    //... 
    protected override void ExecuteTask() 
    { 
     // ... 
    } 
    //other methods 
} 

什麼剩下的就是你的庫DLL複製到惡性的bin,你可以使用它...享受

0

當您在Nant中複製文件時,可以展開文件中的屬性。 不必爲每個屬性編寫不同的更新,您可以在其中創建一個模板文件。 ...

 <fileset basedir="${config.dir}\NantTemplates"> 
      <include name="**\*" /> 
      <exclude name="*.template"/>     
     </fileset> 
     <filterchain> 
      <expandproperties/> 
     </filterchain>