首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Visual Studio 自定义项目模板

Visual Studio 自定义项目模板

作者头像
林德熙
发布于 2018-09-18 07:44:54
发布于 2018-09-18 07:44:54
1.6K00
代码可运行
举报
文章被收录于专栏:林德熙的博客林德熙的博客
运行总次数:0
代码可运行

经常需要新建一个项目,项目有很多重复的东西,如然后新建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$这就是我们代换的项目名,于是接下来讲下可以代换的有哪些

参数](http://www.w3.org/1999/xhtml">参数 ) </sentenceText>

描述](http://www.w3.org/1999/xhtml">描述</sentenceText></span> )

clrversion

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

GUID [1-10]

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

itemname

用户在<strong](http://www.w3.org/1999/xhtml">用户在<strong ) xmlns="[http://www.w3.org/1999/xhtml">添加新项</strong>对话框中提供的名称。](http://www.w3.org/1999/xhtml">添加新项</strong>对话框中提供的名称。</sentenceText></span> )

machinename

当前的计算机名称(例如,Computer01)。](http://www.w3.org/1999/xhtml">当前的计算机名称(例如,Computer01)。</sentenceText></span> )

projectname

用户在<strong](http://www.w3.org/1999/xhtml">用户在<strong ) xmlns="[http://www.w3.org/1999/xhtml">新建项目</strong>对话框中提供的名称。](http://www.w3.org/1999/xhtml">新建项目</strong>对话框中提供的名称。</sentenceText></span> )

registeredorganization

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

rootnamespace

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

safeitemname

用户在<strong](http://www.w3.org/1999/xhtml">用户在<strong ) xmlns="[http://www.w3.org/1999/xhtml">“添加新项”</strong>对话框中提供的名称,名称中移除了所有不安全的字符和空格。](http://www.w3.org/1999/xhtml">“添加新项”</strong>对话框中提供的名称,名称中移除了所有不安全的字符和空格。</sentenceText></span> )

safeprojectname

用户在<strong](http://www.w3.org/1999/xhtml">用户在<strong ) xmlns="[http://www.w3.org/1999/xhtml">“新建项目”</strong>对话框中提供的名称,名称中移除了所有不安全的字符和空格。](http://www.w3.org/1999/xhtml">“新建项目”</strong>对话框中提供的名称,名称中移除了所有不安全的字符和空格。</sentenceText></span> )

time

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

SpecificSolutionName

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

userdomain

当前的用户域。](http://www.w3.org/1999/xhtml">当前的用户域。</sentenceText></span> )

username

当前的用户名。](http://www.w3.org/1999/xhtml">当前的用户名。</sentenceText></span> )

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" />

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <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' 不是内部或外部命令,也不是可运行的程序,在命令行输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

devenv /setup

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
devenv /resetuserdata

修改图片

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

修改Template名称

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Description  >这是一个模板</Description>

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


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Visual Studio 自定义项目模板
经常需要新建一个项目,项目有很多重复的东西,如然后新建View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入ViewModel,如果还用框架,还需要加上好多。 还需要在每个文件夹加上声明,于是每次做的重复的就有很多。
林德熙
2022/08/07
1.5K0
Visual Studio 自定义项目模板
Visual Studio自定义项目模版(图解版)
在我们使用VS新建项目时,一般都需要选择一个项目模板,一个好的项目模板可以帮我们节省很多项目业务上的重复工作
晨星成焰
2024/01/23
2.5K3
Visual Studio自定义项目模版(图解版)
移动开发(五):.NET MAUI中自定义主题设置
今天给大家分享.NET MAUI应用中如何自定义主题,提升APP本身个性化设置的能力,让你开发的APP更具有吸引力。感兴趣的朋友可以来学习一下!
小明互联网技术分享社区
2024/08/11
5730
移动开发(五):.NET MAUI中自定义主题设置
VS 2008 Package 备忘
今天研究了一下vs 2008 package的部署,即怎样放置package中的dll、ProjectTemplate和ItemTemplate,趁着热乎劲先记录下来,免得以后忘记。
明年我18
2019/09/18
8260
VS 2008 Package 备忘
使用动态语言来制作silverlight
在silverlight beta 2 中已经支持了动态语言.但是在Visual Studio 和 Experssion Blend中还没有使用动态语言的模版.我们目前只可以手动建立. ok  开始吧
用户1172164
2018/01/16
9440
使用动态语言来制作silverlight
php插件Xajax使用方法详解
Xajax是PHP一个不用刷新或者跳到其他页面,就能通过点击组件等与后台后台数据库交互的技术
用户2323866
2021/07/05
7880
VS2017 创建&安装项目模板
当你想使用VS做一道OI竞赛题目时,你的步骤是: 新建空项目 | 添加源文件 | 重命名源文件 | 双击打开源文件 写上万年不变的include、main、return 0, 真是如此的繁琐; 且还不方便添加日期时间等信息
战神伽罗
2019/07/24
1.7K0
WEB入门.五 页面设计简介
在上一阶段我们全面地学习了客户端页面技术的实现——HTML,内容包括:HTML 基本标签、表单和框架的使用、模板的制作和应用以及常用的网页布局特效等。通过学习,我们已经可以使用所学技术完成企业级门户网站的静态页面设计。但在实际应用过程中,设计师设计的页面在不同浏览器中的浏览效果不够一致,将导致页面不能兼容的问题,例如:在页面中定义一个层,使用 width 和 height属性设计层的大小,IE浏览器在解析 width 和 height 属性时将包含边框和内边距的大小,而使用符合 W3C标准的浏览器FireFox 在解析时不包含边框和内边距的大小。为保证设计出符合 Web标准的页面,兼容多种浏览器版本包括信息家电产品,如手机、PDA 、平板电脑等,我们将在本阶段学习 XHTML 的相关知识,以及如何使用 XHTML + DIV + CSS 技术对客户端页面进行重构,从而保证浏览效果完全一致。
张哥编程
2024/12/18
1970
WEB入门.五 页面设计简介
使用SpringSecurity
前几天写了一个SpringBoot对拦截器的使用,在实际项目中,对一些情况需要做一些安全验证,比如在没有登录的情况下访问特定的页面应该解释的拦截处理。这一篇介绍使用SpringSecurity来做简单
dalaoyang
2018/06/11
7470
Visual Studio 2008 每日提示(三十四)
#341、导出模板不选择“在资源管理器显示” 原文链接:What unchecking the display an explorer window on the Export Templates Wizard does 操作步骤: 在导出模板向导的第二页,有个选项“在输出文件文件夹上不显示资源管理器窗口” 如果不选中该项,将不会弹出资源管理器窗口 评论:如果不想在导出模板后显示资源管理器,就可以不选择该项 #342、在新建模板对话框更改默认的模板 原文链接:How to change the
Jianbo
2018/03/01
1.2K0
WordPress免插件实现HTML网站地图
WordPress免插件实现HTML网站地图。许多WordPress主题都是不带有这个网站地图页面的,也就需要我们自己来实现了。这里分享的一个代码页面是来自云落GIT主题的网站地图。放来这里,方便下自己也方便下他人。
陌涛
2019/05/22
1.5K0
Web API--入门--(一)ASP.NET Web API 2(C#)入门
在本教程中,您将使用ASP.NET Web API创建返回产品列表的Web API。前端网页使用jQuery显示结果。
喵叔
2020/09/08
5.3K0
Web API--入门--(一)ASP.NET Web API 2(C#)入门
JavaScript面向对象之Windows对象
JavaScript之Window对象 首先我们先了解一个概念:事件。 事件,就是把一段代码设置好,满足条件时触发。或者说,事件是可以被 JavaScript 侦测到的行为。 网页中每个元素都可以触发JavaScript事件。 我们先来看一个简单的事件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
二十三年蝉
2018/02/27
1.2K0
JavaScript面向对象之Windows对象
win10 UWP MvvmLight入门 安装MvvmLight新建ViewModel文件夹绑定参考
安装第二个。他包含了运行的类库,我们将会使用里面的一些类。关于lib包含的库,参见:http://www.cnblogs.com/manupstairs/p/4890300.html
林德熙
2018/09/18
9240
win10 UWP MvvmLight入门
            安装MvvmLight新建ViewModel文件夹绑定参考
dedecms如何自定义专题模板
很多人看到别人的网站也是用dedecms建的,但是他们的专题做得很漂亮,也在想如何自定义dedecms专题模板呢?
ytkah
2022/03/14
8.9K0
大型项目技术栈第一讲 Vue.js的使用
Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。
易兮科技
2020/09/27
5.3K0
大型项目技术栈第一讲  Vue.js的使用
DIV+CSS中标签dl dt dd常用的用法
转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/
bear_fish
2018/09/19
1.1K0
DIV+CSS中标签dl dt dd常用的用法
自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]
我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http://neozhu.github.io/MVC5-Scaffolder/#/ https://github.com/neozhu/MVC5-Scaffolder
阿新
2019/03/06
1.2K0
Spring Boot 最佳实践(四)模板引擎Thymeleaf集成
Thymeleaf是一种Java XML / XHTML / HTML5模板引擎,可以在Web和非Web环境中使用。它更适合在基于MVC的Web应用程序的视图层提供XHTML / HTML5,但即使在脱机环境中,它也可以处理任何XML文件。它提供了完整的Spring Framework集成。
磊哥
2018/09/27
2.3K0
Spring Boot 最佳实践(四)模板引擎Thymeleaf集成
初试JqueryEasyUI(附Demo)[通俗易懂]
  关于easyui不多说,对于我们这样没有美术功底的程序员来说,简直是大大的福利,园里面也有不少人在用,自己在整理一个个站,后台管理要用,正好可以学习下。网上找了相关的教程什么的,但是发现还是官网上的demo讲的狠详细,还有就是下载后的demo示例,但都是某个控件示例,很遗憾,没有整个系统的demo。
全栈程序员站长
2022/09/07
2.1K0
初试JqueryEasyUI(附Demo)[通俗易懂]
相关推荐
Visual Studio 自定义项目模板
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档