Visual Studio:如何为每个项目或解决方案覆盖某些扩展类型的默认"构建操作"?

Łuk*_*lak 7 asp.net-mvc action build visual-studio

我正在从许多程序集中提供我的asp.net mvc视图,并在构建后事件中将视图复制到主应用程序.

但是,我意识到这一点,当我在视图中更改某些内容并且只需按F5时,就不会包含更改.我需要做的是看到更改:保存,构建< - 显式单击,然后按F5.然而,这是非常烦人的解决方案.

我发现在视图上将Build action设置为"Embedded Resource"也可以解决问题,但是其他开发人员可能不记得在将每个视图添加到解决方案后他们必须这样做.

有没有办法覆盖某些文件扩展名的默认构建操作,例如:*.aspx,*.ascx在项目中或(更好)在解决方案中?

我发现能够在每台机器上全局添加此设置,但我不想这样做(链接:http://blog.andreloker.de/post/2010/07/02/Visual-Studio- default-build-action-for-non-default-file-types.aspx)

有任何想法吗 ?

Jer*_*oen 6

考虑以下项目文件大纲:

<Project ToolsVersion="3.5" DefaultTargets="EmbedViews;Build" ...>
...
  <Target Name="EmbedViews">
    <ItemGroup>
      <EmbeddedResource Include="Views\*\*.aspx" />
      <EmbeddedResource Include="Views\*\*.ascx" />
    </ItemGroup>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

这会将所有文件aspxascx文件添加Views\<subfolder>到库中Embedded Resource.请注意以前EmbedViews添加到- 订单在这里很重要,我发现自己犯了这个错误:-)DefaultTargets Build

由于编辑所有项目文件以获取此代码段很麻烦,因此您可以创建自己的项目模板.

如果有帮助,请告诉我.

  • 如果要在文件夹结构中包含任意数量的后代,请进行小修改:"Views \\**\\*.aspx" (2认同)