t4模板生成 _references.js 文件

t4模板功能:
  指定目录,自动生成 _references.js 文件

相关文件说明:
  _references.js 实现js智能提示。

注意事项:
  hostspecific="true"
  <#@ template debug="false" hostspecific="true" language="C#" #>
  projectDir=Host.ResolveAssemblyReference("$(ProjectDir)");

源码:

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".js" #>
<#
    projectDir=Host.ResolveAssemblyReference("$(ProjectDir)");
    searchPaths=new string[]{"Scripts","Content\\ExtJs","Views"};
    foreach(var person in this.GetJavascriptList()) {
    #>
/// <reference path="<#= person #>" />
<#    }    #>

<#+
    string projectDir;
    string[] searchPaths;
    // 开始
    public List<string> GetJavascriptList()
    {
        List<string> fileList=new List<string>();

        foreach(var i in searchPaths){
            GetFileList(Path.Combine(projectDir,i),ref fileList);
        }
        return fileList;
    }

    // 取单个目录Js文件列表
    private void GetFileList(string path, ref List<string> fileList){
        var files=Directory.GetFiles(path);
        var query=from i in files.Where(t=>validFile(t))
            select formatPath(i);
        foreach(var i in query){
            fileList.Add(i);
        }

        var folders=Directory.GetDirectories(path);
        foreach(var fo in folders){
            GetFileList(fo,ref fileList);
        }
    }

    // 过滤文件
    private bool validFile(string filePath){
        var vaild=Path.GetExtension(filePath)==".js" && !filePath.Contains("_references.js");
        return vaild;
    }

    // 格式化输出路径
    private string formatPath(string filePath){
        return filePath.ToLower()
            .Replace(projectDir,"~")
            .Replace("\\","/");
    }

#>

t4模板生成 _references.js 文件

时间: 2024-11-04 14:15:35

t4模板生成 _references.js 文件的相关文章

真实项目中VS2015中自建T4模板生成文件的使用

有可能许多小伙伴们发现,vs2015和2012的自带T4模板中的.tt文件改变非常之多,如果仅仅copyEF系统自己生成的模板文件,那可累了.以下是我自己整理的在2012和2015中都可以试用的代码. <#@ template language="C#" debug="false" hostspecific="true"#> <#@ include file="EF.Utility.CS.ttinclude"

[转]MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码

本文转自:http://www.cnblogs.com/guomingfeng/p/mvc-ef-t4.html 〇.目录 一.前言 二.工具准备 三.T4代码生成预热 (一) 单文件生成:HelloWorld.cs (二) 多文件生成 四.生成数据层实体相关相似代码 (一) 生成准备 (二) 生成实体相关相似代码 生成实体映射配置类 生成实体仓储接口 生成实体仓储实现 五.源码获取 系列导航 一.前言 经过前面EF的<第一篇>与<第二篇>,我们的数据层功能已经较为完善了,但有不少

利用T4模板生成ASP.NET Core控制器的构造函数和参数

前言 在ASP.NET Core中引入了DI,并且通过构造函数注入参数,控制器中会大量使用DI注入各种的配置参数,如果配置注入的参数比较多,而且各个控制器需要的配置参数都基本一样的话,那么不断重复的复制黏贴代码提供相应的构造函数,效率低效也,因此使用T4模板生成控制器的构造函数 ,这也得益于C#对分部类(partial)的支持. T4模板生成控制器构造函数 图中CtrlTemplate.tt为模板文件,CtrlNames.txt为需要使用T4生成代码的控制器名称文件,CtrlTemplate.c

使用T4模板生成不同部署环境下的配置文件

在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据库使用的是开发环境的数据库,消息队列也使用的部署在开发机上的消息队列,传统的方式是,由发布或者配置管理员来维护这些不同环境的配置文件.通常,手工的针对不同的环境去修改配置文件容易产生错误. 有很多种不同的方式来针对不同的部署环境生成配置,最笨的方法就是可以维护几套不同的配置文件,然后在编译事件中根据

Visual Studio 2013 EF5实体数据模型 EDMX 使用 T4模板生成后使用 ObjectContext对象

Visual Studio 2013 EF5实体数据模型 EDMX 使用 T4模板生成后的继承对象为DbContext,以前的熟悉的ObjectContext对象不见了,当然使用ObjectContext对象不是每个程序员都需要的,解决办法有两种: 方法1.打开Model.Context.cs,添加 public OracleModelEntities(ObjectContext objectContext, bool dbContextOwnsObjectContext)           

《如何让TT T4模板输出多个文件(VS2010中)》-- access911.net 文章

<如何让TT T4模板输出多个文件(VS2010中)>-- access911.net 文章 问题:   VS2010中自带的 TT 模板功能挺好用,但是如何定义其输出的目录,或者如何编程让一个tt文件可以输出多个结果文件. 回答:   <#@ Import Namespace="System.Text" #> <#@ import namespace="System.IO" #> <#@ Import Namespace=

使用T4模板生成代码的学习

之前做项目使用的都是Db First,直接在项目中添加Entity Framework,使用T4模板(T4模板引擎之基础入门)生成DAL BLL层等(T4模板是一个同事给的,也没有仔细研究,代码如下:) <#@ template language="C#" debug="false" hostspecific="true"#> <#@ include file="EF.Utility.CS.ttinclude"

[MVC学习笔记]2.使用T4模板生成其他类的具体实现

      在前篇中我们已经将User类中的代码做了具体的实现,但仍然有多个实体类未实现,以后可能还会增加新的数据表,数据表结构也有可能发生变化,所以我们使用T4模板来完成类的生成,这样就算数据库表发生了改变,也会自动根据改变后的实体对类进行重新生成. 下面是数据访问层的T4模板文件Dal.tt <#@ template language="C#" debug="false" hostspecific="true"#> <#@

C# Net MVC+SqlServer=T4模板生成实体类并操作数据(DbHelper+DBManage)

1.ConnectionString,数据库链接 Web.config <configuration> <connectionStrings> <!-- 数据库 SQL Server --> <add name="ConnectionString" connectionString="Data Source=**IP地址**;Initial Catalog=**数据库名**;User ID=**用户名**;Password=**密码*