Visual Studio 2012中是否有一个目标在项目打开时运行?

时间:2016-04-19 18:22:30

标签: visual-studio-2012

tl; dr 我希望在Visual Studio 2012中打开项目后立即运行命令。如何实现此目的?

更长版本

要在Visual Studio中自动构建项目的前端部分,我已在项目文件中指定了此项:

<PropertyGroup Label="NodeJS">
    <NodeJSPath>$(MSBuildProjectDirectory)\..\..\tools\nodejs</NodeJSPath>
</PropertyGroup>

<Target Name="BeforeBuild">
    <Exec command="$(NodeJSPath)\npm install" />
    <Exec command="$(NodeJSPath)\npm run test" />
    <Exec command="$(NodeJSPath)\npm run build-all" />
</Target>

这很好,但这意味着在项目运行时不会构建任何sass更改。所以我想要的是在Visual Studio中打开项目之后不断编译SASS,而没有任何后退者需要了解有关Node进程的所有信息。这意味着我需要在项目启动时运行npm installnpm run watch-sass

我知道Visual Studio 2015 在看到npm install后会立即package.json,这基本上就是我要复制的内容。

1 个答案:

答案 0 :(得分:1)

在Visual Studio中打开项目时执行以下目标:

  

设计时目标执行

     

Visual Studio在加载项目时尝试执行具有特定名称的目标。这些目标包括CompileResolveAssemblyReferencesResolveCOMReferencesGetFrameworkPathsCopyRunEnvironmentFiles。 Visual Studio运行这些目标,以便可以初始化编译器以提供IntelliSense,可以初始化调试器,并且可以解析在解决方案资源管理器中显示的引用。如果这些目标不存在,项目将正确加载和构建,但Visual Studio中的设计时体验将无法完全发挥作用。

您可能希望在目标上粘贴一个Condition以防止它在Build服务器上加载或从命令行构建解决方案时:

<target ... condition="'$(BuildingInsideVisualStudio)' == 'true'">

但升级到Visual Studio 2013或2015可能更容易使用内置于Visual Studio 2015中的新任务运行器,并作为Visual Studio 2013的扩展。哪个可以be extended to support other task runners as well