如何将自定义事件绑定到VS 2013中的grunt任务运行器

时间:2014-12-01 16:55:26

标签: visual-studio-2013 msbuild gruntjs

我意识到task runner是一个视觉工作室extension,你可以将一个笨拙的任务绑定到一个特定的视觉工作室" event"像:

  • 构建之前
  • 构建后
  • 清洁
  • 开放解决方案

在我的情况下,我希望自动化部署过程以使用grunt(clean,minify,concat文件等)运行构建任务,然后再创建 visual studio 中发布网站时,>部署包。

我还想对部署软件包进行一些修改改为改为提取 主目录中的整个文件列表<&strong> ; d喜欢选择库(DLL)和 dist文件夹中的grunt任务创建的文件,对我来说听起来像是任务运行器和MSBuild的组合。

换句话说,这些是我的问题:

  • 如何在发布网站之前触发任务?
  • 如何选择特定文件夹,而不是应用程序的整个根目录?

任何建议或指导都将受到欢迎。

1 个答案:

答案 0 :(得分:1)

我可以帮助您解决问题的部分,因为我在选择要部署的内容方面做了类似的事情。

您可以在项目中创建名为 projectname .wpp.targets的文件,该文件是一个允许您微调MSBuild的XML文件。 More info here about the MSBuild schema here

我怀疑你要找的是ExcludeFromPackageFolders和ExcludeFromPackageFiles,所以你只需要部署你想要的东西。

示例:

<?xml version="1.0" encoding="utf-8" ?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
    <ExcludeFromPackageFolders Include="Application;bower_components;node_modules">
        <FromTarget>PhoneBook.wpp.targets</FromTarget>
    </ExcludeFromPackageFolders>
    <ExcludeFromPackageFiles Include=".bowerrc;bower.json;gulpfile.js;package.json;main.html;PhoneBook.wpp.targets">
        <FromTarget>PhoneBook.wpp.targets</FromTarget>
    </ExcludeFromPackageFiles>
</ItemGroup>

至于触发一个自定义事件,抱歉我无法帮助那里,我很乐意发布一个后发布事件,因为Gulp和MSBuild有时因为前者的异步特性而相互绊倒。