(微软官方文档)如何:创建项目模板

原贴

在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权、开发人员的信息,并且名称空间上都需要带有公司的标志。这个时候,是选择在开发的时候手动添加还是自动生成呢?
  我们其实完全可以利用 Visual Studio 提供的模板工具自定义一套专属的模板。

自定义项目模板

  假如当我添加一个 .cs 文件后,我希望默认添加的文件要看起来像这个样子:
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图1
  如何实现
  1. 随意新建一个工程或使用一个已经存在的工程,在该项目内新添加一个普通的 class 文件,打开后应该和下图长得差不多。
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图2
  2. 修改这个文件,让它看起来和我们的目标模板越像越好。
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图3

  1. #region 版权信息
  2. /*
  3. * -----------------------------------------------------------
  4. * Copyright (c) 2014 chenxu.me All rights reserved.
  5. * -----------------------------------------------------------
  6. *
  7. * 创建者: $username$
  8. * 创建时间: $time$
  9. * CLR: $clrversion$
  10. *
  11. */
  12. #endregion
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. namespace Charley.$rootnamespace$
  19. {
  20. class Class1
  21. {
  22. }
  23. }

  有一部分信息,例如时间,是没办法在写模板的时候就知道的,这个只能在生成文件的时候才能知道。此类动态的数据,Visual Studio 提供了一堆占位符供我们使用。
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图4
上图只是其中一部分,更多请查看文后的参考资源
  3. 导出模板
  3.1 选择 文件 / 导出模板…
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图5
  3.2 选择项目模板
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图6
  3.3 选择我们要导出的模板
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图7
  3.4 不用勾选
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图8
  3.5 修改模板名称等信息,同时勾选 “自动导入到 Visual Studio ” 中
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图9
  3.6 点击完成,Visual Studio 便开始生成模板 (zip文件)
  4. 检查下效果
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图10
新增文件的时候,就会找到我们自己的模板
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图11
文件中的占位符已经被正确替换

自定义工程模板

  整个过程和自定义项目模板类似,只不过自定义工程模板的时候需要根据预期的模板工程新建一个对应的工程。这里我以类库项目为例进行介绍。
  因为是针对整个工程来说,所以记得把所有需要修改的文件都要进行修改,修改方式参考自定义项目模板。
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图12
修改代码
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图13
选择工程模板
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图14
填写信息
  当下一次添加新的工程时候,就会发现新的模板。
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图15
C#-项目模板-如何利用 Visual Studio 自定义项目或工程模板 - 图16
文件中的信息已经被正确替换了