为.NET Core项目定义Item Template
作为这个星球上最强大的IDE,Visual Studio不仅仅提供了很多原生的特性,更重要的是它是一个可定制的IDE,比如自定义Project Template和Item Template就是一个非常有用的扩展点。这里我们主要关注Item Template,它时我们可以在“Add new Item”对话框中添加我们自定义的Item(如下图所示)。如果不了解Item Template,Scott Gu的文章。 我们之前自定义了一些Item Template,最近想在.NET Core项目中使用它们,但是失败了。今天为了这个折腾得够呛,不过好在最后还是解决了——虽然解决方案仅仅是添加一行代码。 如果不了解Item Template定义文件的Schema,定义Item Template最简单的方式就是直接利用VS创建一个对应的项目。由于我们是针对.NET Core项目提供的Item Template,所以我们创建了一个.NET Core类库项目。作为演示,我们在项目中添加了如下一个Foobar.cs文件作为这个Item Template为目标项目添加的Item。 按照惯例,我们只需要选择菜单File->Export Template打开如下Template的导出向导。我们选择Item Template选项后进入下一步。 由于我们只要利用Item Template为目标添加Foobar.cs这个文件,所以我们只需选择这个文件即可。 选择默认选项知道完成向导,作为一个.zip文件将会出现在目录“%userprofile%DocumentsVisual Studio 2015My Exported Templates”目录下。 按照惯例,我们只需要将这个zip文件拷贝到%userprofile%DocumentsVisual Studio 2015TemplatesItemTemplates.NET Core“目录下就可以了。但是为.NET Core项目添加Item的时候并没有看到它。 为此我们解压缩这个文件,查看它的”MyTemplate.vstemplate“文件,如下所示的就是该文件的内容。主要关注代表项目类型的<ProjectType>元素,我们看到它的值为 DNX。有人可能认为DNX是错误的项目类型,虽然DNX已经是个历史名次,但是VS目前依然使用它来表示.NET Core。 1: <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> 2: TemplateData 3: DefaultName>MyItem.cs</ 4: Name>MyItem 5: Description><No description available> 6: ProjectType>DNX 7: SortOrder>10 8: Icon>__TemplateIcon.ico 9: 10: TemplateContent 11: References /> 12: ProjectItem SubType="" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Foobar.csProjectItem 13: 14: VSTemplate> 实际上除了需要制定<ProjectType>之外,我们还需要指定TemplateGroupID,并且将值设定为“SharedDotNetAndDotNetWeb”(表示普通的.NET Core类库项目和Web项目都适用) 15: >
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- (*)真的很贵吗?
- asp.net-mvc – 由于对输入文本框进行过滤而导致绑定列表更
- asp.net-mvc – 为什么Asp.net MVC4不能使用SQL Server会话
- asp.net-membership – ASP.NET成员资格 – 登录控制 – Te
- asp.net – 如何使用JWT对角度SPA的Web Api 2进行用户身份验
- asp.net-mvc – 在mvc中的所有页面中维护查询字符串
- asp.net – ASP会员奇数问题
- asp.net-mvc – ASP.NET MVC RememberMe
- asp.net – 如何在WebPage中显示嵌入的Excel文件?
- asp.net-mvc – ASP.NET MVC:将复杂类型绑定到选择
- asp.net – 如果禁用ViewState会发生什么
- asp.net – 如何使我的硒测试不那么脆弱?
- asp.net-mvc-3 – 我的路由如何使用ASP MVC3在UR
- asp.net-mvc-4 – ASP.Net MVC JS / CSS捆绑在部
- asp.net-mvc – Asp.net MVC 4 WEB API – 自定义
- asp.net-mvc – 为什么在HttpGet操作上的mvc属性
- asp.net – monodevelop可以像没有VS2010一样进行
- .net – 改善翻译和开发人员的工作流程
- asp.net – 什么时候读取web.config?
- 是否值得使用ASP.Net内置的配置文件系统?