2019-9-2-Visual-Studio-自定义项目模板
| 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$这就是我们代换的项目名,于是接下来讲下可以代换的有哪些
|
参数 |
描述 |
|---|---|
|
|
公共语言运行时 (CLR) 的当前版本。 |
|
|
用于替换项目文件中的项目 GUID 的 GUID。 最多可以指定 10 个唯一的 GUID(例如,guid1))。 |
|
|
用户在添加新项对话框中提供的名称。 |
|
|
当前的计算机名称(例如,Computer01)。 |
|
|
用户在新建项目对话框中提供的名称。 |
|
|
HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization 中的注册表项值。 |
|
|
当前项目的根命名空间。 此参数仅适用于项目模板。 |
|
|
用户在“添加新项”对话框中提供的名称,名称中移除了所有不安全的字符和空格。 |
|
|
用户在“新建项目”对话框中提供的名称,名称中移除了所有不安全的字符和空格。 |
|
|
以 DD/MM/YYYY 00:00:00 格式表示的当前时间。 |
|
|
解决方案的名称。 当“创建解决方案的目录”被选中,SpecificSolutionName 具有解决方案的名称。 当“创建解决方案的目录”没有被选中,SpecificSolutionName是空。 |
|
|
当前的用户域。 |
|
|
当前的用户名。 |
|
|
当前网站的名称。 在 Web 窗体模板中使用此参数以确保类名称是唯一的。 如果网站位于 Web 服务器的根目录下,则此模板参数将解析为 Web 服务器的根目录。 |
|
|
以 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-自定义项目模板的更多相关文章
- [Visual Studio] 自定义项目模板(.vsix扩展)
VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...
- Visual Studio 自定义项目模板
经常我们需要新建一个项目,然后新建我们的View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入我们的VIewModel,如果还用框架,还需要加上好多. ...
- 如何利用 Visual Studio 自定义项目或工程模板
在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...
- DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解
关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- Visual Studio 自定义项目或工程模板
如何利用 Visual Studio 自定义项目或工程模板 在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志 ...
- 用Visual Studio2019自定义项目模板
项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...
- 如何利用 Visual Studio 自定义项目或工程模板(转载)
在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...
- [Visual Studio] .vsix项目模板制作
Visual Studio (VSIX,项目模板 )制作 下载Vsiual Studio 2012 SDK 下载地址:http://www.microsoft.com/en-us/download ...
- [Visual Studio] 自定义类模板
1.找到vs2015/vs2012/vs2017的安装目录下:Common7\IDE\ItemTemplates\CSharp\Code\2052\Class 2.打开Class.cs文件 using ...
- VS2019 自定义项目模板
前言: 使用"宇宙最强IDE"开发项目时,都需要根据不同情况选择一个项目模板,来满足开发需求:如下 VS为我们提供了基础的项目模板,但现有项目模板未包含基础功能如:日志输出.审计日 ...
随机推荐
- 如何实现已发布app的自动更新
要实现app的自动更新,做两件事情就可以搞定 1.获取当前手机中的app版本号 我们可以通过查询mainbundle中的获取CFBundleVersion NSDictionary *infoDict ...
- 【Leetcode 堆、快速选择、Top-K问题 BFPRT】数组中的第K个最大元素(215)
这道题很强大,引出了很多知识点 题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5 ...
- fedora 安装 pidgin-lwqq
因为 腾讯自带的linux for qq 已经无法登陆,于是详尽各种办法在fedora 上安装 qq ,但均以失败高中.于是使用了几天web qq 但最终无法忍受,于是有研究起来了 pidgin-l ...
- 全球首个百万IOPS云盘即将商业化 阿里云推出超高性能云盘ESSD
近日,在经过近半年的上线公测后,阿里云全球首个跨入IOPS百万时代的云盘——ESSD即将迎来商业化,单盘IOPS高达100万,这是阿里云迄今为止性能最强的企业级块存储服务. 搭配ECS云服务器使用, ...
- Linux中的库
一.基本概念 1.1.什么是库 在 windows 平台和 linux 平台下都大量存在着库. 本质上来说库是一种可执行的二进制代码(但不可以独立执行),可以被操作系统载入内存执行. 由 ...
- jsp中的标签使用
jsp中的变量作用域 表示变量的作用域,一共4种.pageScope: 表示变量只能在本页面使用.requestScope:表示变量能在本次请求中使用.sessionScope:表示变量能在本次会话 ...
- 【JZOJ4887】【NOIP2016提高A组集训第13场11.11】最大匹配
题目描述 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边. 图的"匹配"是指这个图的一个边集,里面的边两两不存 ...
- Android Binder简介
Android使用Linux的进程管理机制,以进程为单位分配虚拟地址空间.为了安全考虑,Android的不同进程之间是相互隔离的(进程之间被禁止直接交互).如果进程间需要通信,必须通过Android的 ...
- hdu4310 贪心
考虑每次血口的要少 就按照一滴血多少伤害来计算.由于直接相除有小数.考虑x/y > a/b => x*b >y*a; #include<stdio.h> #inclu ...
- maven 发布到本地仓库
1.maven打包命令 maven package命令只是将你需要打包的项目打包到项目的class文件夹下面,并没有发布到本地仓库或者私服上面,现在多模块开发的打包一般依赖私服或者 本地仓库,因此,我 ...