title author date CreateTime categories
Visual Studio 自定义项目模板
lindexi
2019-09-02 12:57:38 +0800
2018-2-13 17:23:3 +0800

经常需要新建一个项目,项目有很多重复的东西,如然后新建View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入ViewModel,如果还用框架,还需要加上好多。
还需要在每个文件夹加上声明,于是每次做的重复的就有很多。

而我一般还有用九幽统计,需要修改好多东西,每新建一个项目都要做这个,这样我觉得不好,在网上看到了自定义模板,不过垃圾微软官方说的好差,看不懂,看了老周的,还是觉得不懂,我就自己来创建一个试试。

第一步需要打开我们目录:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows UAP

可以看到里面有很多个文件夹,一般我们打开最后一个,我也不知道你看到我这篇,垃圾微软把它改为最大多少,所以,一个一个来,我现在打开1033,(1033是老周博客写的)我的其实还有更后的,这个如果都是数字,就选最大的。


11月更新:

1033是数字版本LCID(Locale ID,区域性标识符),1033代表英语,2052代表简体中文

多谢UltimateLove大神


第二步是把文件夹复制到桌面或其他离回收站比较近的地方,然后压缩一份保存。因为怕自己弄坏了。

然后我们用 Visual Studio 打开文件,记住,要打开 .csproj 是要用 vs 的菜单 文件->打开。

我们先打开 BlankApplication 里的 BlankApplication.vstemplate

我们要修改是 项目包含文件,把需要包括的文件放进去, TemplateContent 就是我们项目包含的文件

可以看到需要包含项目 Application.csproj,这个值后面 写了ReplaceParameters="true",这就是我们会把东西代换,代换的我在后面讲。

然后就是项目包含文件,如 App.xaml <ProjectItem ReplaceParameters="true" TargetFileName="App.xaml">App.xaml</ProjectItem>

上面代码意识:从本地找到App.xaml文件,放在新建项目的App.xaml。因为放入之前需要代换,于是加上ReplaceParameters="true"

那么代换是把什么换为什么?先看看文档做了哪些改变

看到$safeprojectname$这就是我们代换的项目名,于是接下来讲下可以代换的有哪些

参数

描述


clrversion

公共语言运行时 (CLR) 的当前版本。


GUID [1-10]

用于替换项目文件中的项目 GUID 的 GUID。 最多可以指定 10 个唯一的 GUID(例如,guid1))。


itemname

用户在添加新项对话框中提供的名称。


machinename

当前的计算机名称(例如,Computer01)。


projectname

用户在新建项目对话框中提供的名称。


registeredorganization

HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 中的注册表项值。


rootnamespace

当前项目的根命名空间。 此参数仅适用于项目模板。


safeitemname

用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。


safeprojectname

用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。


time

以 DD/MM/YYYY 00:00:00 格式表示的当前时间。


SpecificSolutionName

解决方案的名称。 当“创建解决方案的目录”被选中,SpecificSolutionName 具有解决方案的名称。 当“创建解决方案的目录”没有被选中,SpecificSolutionName是空。


userdomain

当前的用户域。


username

当前的用户名。


webnamespace

当前网站的名称。 在 Web 窗体模板中使用此参数以确保类名称是唯一的。 如果网站位于 Web 服务器的根目录下,则此模板参数将解析为 Web 服务器的根目录。


year

以 YYYY 格式表示的当前年份。

我们在添加我们的文件,如果需要放在项目的文件夹,而不是根目录,那么需要写<ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>在TargetFileName写上路径。

写完我们打开 Application.csproj ,他和一般的 .csproj 一样, ItemGroup 是项目文件,我们需要写入我们的文件是编译还是内容,添加文件很多是编译 Compile 。假如添加 NotifyProperty ,可以这样写

<Compile Include="ViewModel\NotifyProperty.cs" />

如果我们需要文件夹,空白的文件夹,我们可以这样写

    <Folder Include="Model\" />

把需要添加的文件和文件夹写完,进行保存。

然后把文件夹复制到C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows UAP\2052\BlankApplication 这个位置需要和你复制出的位置一样。也就是数字 2052 对应的你复制出来的路径。

复制进去需要管理员。

然后关闭vs,再打开vs,注意需要把vs关闭看下任务管理,杀vs进程。然后新进项目,这时可以看到新建的模板。

如果想新建模板,不是替换 BlankApplication ,可以修改TemplateID为我们的,不使用原来的。不把原来的 BlankApplication 文件夹覆盖。打开vs 新建就可以看到自己新建的。

新建项目如果没有找到刚才做的项目,那么可以打开C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplatesCache对应刚才相同位置。把文件复制,然后关闭vs,重新打开就可以看到。

除了手动复制还可以使用命令行输入 devenv /setup

如果提示'devenv' 不是内部或外部命令,也不是可运行的程序,在命令行输入

cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

devenv /setup

如果出现未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包

先重启下,如果还是不好,那么使用

devenv /resetuserdata

修改图片

我们可以修改显示的图标,显示在新建的图标,需要我们复制一个图标进去,然后PreviewImage作为我们复制的图标。

修改Template名称

我们可以看到如果我们新建一个模板,看到的名称和原来一样,那么如何自定义自己模板名称?其实我们可以修改TemplateData

我们把Name改为自己的名字,把Description改为自己的对模板的修改或者别的,如“这是一个模板”。

<Description  >这是一个模板</Description>

还有其他的,如果遇到不知道的,欢迎联系 lindexi_gd@163.com

2019-9-2-Visual-Studio-自定义项目模板的更多相关文章

  1. [Visual Studio] 自定义项目模板(.vsix扩展)

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  2. Visual Studio 自定义项目模板

    经常我们需要新建一个项目,然后新建我们的View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入我们的VIewModel,如果还用框架,还需要加上好多. ...

  3. 如何利用 Visual Studio 自定义项目或工程模板

    在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...

  4. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  5. Visual Studio 自定义项目或工程模板

    如何利用 Visual Studio 自定义项目或工程模板 在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志 ...

  6. 用Visual Studio2019自定义项目模板

    项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...

  7. 如何利用 Visual Studio 自定义项目或工程模板(转载)

    在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...

  8. [Visual Studio] .vsix项目模板制作

    Visual Studio (VSIX,项目模板 )制作   下载Vsiual Studio 2012 SDK 下载地址:http://www.microsoft.com/en-us/download ...

  9. [Visual Studio] 自定义类模板

    1.找到vs2015/vs2012/vs2017的安装目录下:Common7\IDE\ItemTemplates\CSharp\Code\2052\Class 2.打开Class.cs文件 using ...

  10. VS2019 自定义项目模板

    前言: 使用"宇宙最强IDE"开发项目时,都需要根据不同情况选择一个项目模板,来满足开发需求:如下 VS为我们提供了基础的项目模板,但现有项目模板未包含基础功能如:日志输出.审计日 ...

随机推荐

  1. 本地 vs. 云:大数据厮杀的最终幸存者会是谁?— InfoQ专访阿里云智能通用计算平台负责人关涛

    摘要: 本地大数据服务是否进入消失倒计时?云平台大数据服务最终到底会趋向多云.混合云还是单一公有云?集群规模增大,上云成本将难以承受是误区还是事实?InfoQ 将就上述问题对阿里云智能通用计算平台负责 ...

  2. qt绘制渐变区域

    // 原理:通过点到线,然后叠加成区域.同理,可使用其他图形 QPainter painter(m_pWidget); QLinearGradient linearGradient(QPointF(, ...

  3. ios开发ARC,IBOutlets之strong与weak

    今天在写程序的时候,用IBOutlets连了一个自定义的控件,出现了问题,后面访问的时候,控件里有些subviews没有初始化好,取到的时候为nil, 程序里用了ARC, IBOutlets一连接上, ...

  4. 用SpannableString来设置一个textview的各种样式

    通常情况下,textview 设置文本的样式很单一,为了满足某种需求可以使用SpannableString来设置文本字体大小.颜色.超链接等属性. xml就一个TextView所以就不在给出了,直接看 ...

  5. oracle在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户?

    我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用 需要Alter user权限或DBA权限: SQL> select password from dba_users w ...

  6. SPARK-SQL内置函数之字符串函数

    转载请注明转自:http://www.cnblogs.com/feiyumo/p/8763186.html 1.concat对于字符串进行拼接 concat(str1, str2, ..., strN ...

  7. List容器案例

    案例讲解 迭代模式 不暴露集合的内部结构,又让外部访问集合中的数据 package com.day1; public interface Iterator <T>{ public bool ...

  8. 【7.18总结】KM算法

    先贴代码,参考博客来源于:https://blog.csdn.net/zyy173533832/article/details/11519291#commentBox 例题:HDU 2255 题意:n ...

  9. 在Debug模式下,如何给.lib和.dll添加一个d标记(*d.lib,*d.dll)

    选中工程->右键->属性->配置属性->常规,可以看到项目默认值的配置类型有好几种类型,选择静态库类型生成lib文件,选择动态库类型生成dll文件,选择应用程序生成exe文件, ...

  10. ERROR: epmd error for host "yourhostname": timeout

    安装完rabbitmq-server.重新启动时间非常长,而且报错ERROR: epmd error for host "yourhostname": timeout 原因是:主机 ...