2012-05-14 55 views
2

我想在每次構建之前運行一些自定義批處理代碼。在VS11/C#應用程序中,我可以在項目設置中設置預生成事件。我無法在javascript metro VS11解決方案中找到類似的設置。如何在VS11中爲JavaScript metro應用程序創建預構建步驟?

任何人都知道它在哪裏,或者如果選項不見了(!)我可以採取什麼樣的解決方法呢?

回答

7

可以使用BeforeBuild目標在Visual Studio .jsproj文件來實現這一點:

<Target Name="BeforeBuild"></Target> 
<Target Name="AfterBuild"></Target> 

到這裏:

  1. 右鍵單擊在Visual Studio項目,然後選擇打開文件夾在Windows資源管理器中
  2. 在資源管理器中,右鍵單擊.jsproj文件,然後選擇打開方式...並選擇一個編輯器,如記事本
  3. 滾動到第e文件,您會注意到這兩個目標部分已註釋掉

取消註釋BeforeBuild目標並在其中添加自定義步驟。您可以使用該元素來執行命令行腳本;在C#預生成步驟中可以使用相同的$變量(例如$(ProjectDir))。您可以做的不僅僅是在目標中調用命令行腳本,但這與您通常使用C#預生成步驟完成的操作最爲接近。

作爲一個例子,下面的代碼會調用一個名爲processFile.bat的批處理文件,將項目根目錄中的default.js路徑和輸出路徑傳遞給項目輸出目錄中的名爲output.js的文件在調試模式下例如/ bin中/調試):

<Target Name="BeforeBuild"> 
    <Exec Command="processFile.bat &quot;$(ProjectDir)default.js&quot; &quot;$(OutDir)output.js&quot;"> 
</Target> 

注:& QUOT;是在Command參數內部的目的,這確保了這兩個參數在傳遞給processFile.bat時被引用,並通過cmd.exe調用。

+0

不要忘記添加DisableFastUpToDateCheck標誌。否則,VisualStudio將繞過使用MSBuild,並且在計算沒有更改時通常不會調用任何目標。 – deepelement

+0

您還需要在末尾使用「退出0」結束腳本,否則會引發構建錯誤代碼2 –

相關問題