我们目前正在使用RazorGenerator库为项目生成预编译的视图。到目前为止,我们一直在使用Visual Studio扩展来处理生成,这些生成的文件也被提交到我们的存储库。
由于我们不断地必须解决生成的文件中的合并缺陷,这引起了一些痛点。考虑到这一点,我已经着手尝试将RazorGenerator.MsBuild目标库集成到我们的构建过程中,这样我们就可以避免将代码生成的文件存储在我们的存储库中。
到目前为止,我已经禁用了VS扩展,并且根据需要使构建目标工作,但是我现在已经失去了对生成文件的intellisense和resharper支持,因为它们不再是解决方案的一部分。
我想知道是否有其他人之前已经走过这条道路,理想情况下我想要实现的是使用Build目标生成cs文件,无需在存储库中包含这些cs文件,仍然对生成的文件具有Intellisense / Resharper覆盖率。
有什么想法?
答案 0 :(得分:1)
我通过为每个实现我们自己的基类的cshtml模板创建一个空的部分类来解决这个问题,该模板又实现了RazorGenerator.Templating.RazorTemplateBase
。
通过这种方式,我们可以访问在这些类上公开的所有可公开访问的属性和方法,这使得intellisense / resharper感到高兴,并且在构建时生成模板.cs文件,这些文件在输出布局等方面做了很多工作。