2012-05-14 53 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 –

相关问题