• 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.0Common7IDEProjectTemplatesCSharpWindows RootWindows 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

    HKLMSoftwareMicrosoftWindows NTCurrentVersionRegisteredOrganization 中的注册表项值。

    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="PropertiesAssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>在TargetFileName写上路径。

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

    <Compile Include="ViewModelNotifyProperty.cs" />

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

        <Folder Include="Model" />

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

    然后把文件夹复制到C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDEProjectTemplatesCSharpWindows RootWindows UAP2052BlankApplication 这个位置需要和你复制出的位置一样。也就是数字 2052 对应的你复制出来的路径。

    复制进去需要管理员。

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

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

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

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

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

    cd C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDE
    
    devenv /setup

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

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

    devenv /resetuserdata
    

    修改图片

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

    修改Template名称

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

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

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

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

  • 相关阅读:
    trackr: An AngularJS app with a Java 8 backend – Part III
    trackr: An AngularJS app with a Java 8 backend – Part II
    21. Wireless tools (无线工具 5个)
    20. Web proxies (网页代理 4个)
    19. Rootkit detectors (隐形工具包检测器 5个)
    18. Fuzzers (模糊测试器 4个)
    16. Antimalware (反病毒 3个)
    17. Debuggers (调试器 5个)
    15. Password auditing (密码审核 12个)
    14. Encryption tools (加密工具 8个)
  • 原文地址:https://www.cnblogs.com/lindexi/p/12086283.html
Copyright © 2020-2023  润新知