2017-05-17 14 views
7

Tôi có một phần mở rộng mẫu Visual Studio 2017 hiện đang làm việc với các dự án ASP.NET. Nó có .vstemplate sau:Cài đặt nào sẽ được sử dụng để nhận ItemTemplates tùy chỉnh hoạt động với các dự án .NET Core?

<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010"> 
    <TemplateData> 
    <Name>Angular Component</Name> 
    <Description>Files for an Angular component</Description> 
    <RequiredFrameworkVersion>4.5</RequiredFrameworkVersion> 
    <Icon>AngularComponentTemplate.ico</Icon> 
    <ProjectType>CSharp</ProjectType> 
    <ProjectSubType>Web</ProjectSubType> 
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp> 
    </TemplateData> 
    <TemplateContent> 
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.component.html">base.component.html</ProjectItem> 
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.component.ts">base.component.ts</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

Ngoài ra các tập tin VSIX tham khảo nó có

ItemTemplates \ CSharp \ Web

bộ cho "VSIX Sub Path" tài sản của dự án .

Tôi không thể, tuy nhiên, nhận mẫu này xuất hiện trong các dự án ASP.NET Core. Tôi đã thử sử dụng tính năng này trong vstemplate:

<ProjectType>DNX</ProjectType> 
<TemplateGroupID>SharedDotNetAndDotNetWeb</TemplateGroupID> 

(từ https://stackoverflow.com/a/38543920/1783619) nhưng không hoạt động. Trong phiên bản phát hành của Visual Stuido 2017, làm cách nào để có được các mẫu mục xuất hiện trong các dự án lõi .NET?

Trả lời

8

Tôi gặp vấn đề tương tự khi tạo mẫu mục cho tệp pug.

Dưới đây là những gì tôi đã làm:

Thứ nhất, tôi phát hiện ra cách các mẫu cổ được viết bằng:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ ItemTemplates \ AspNetCore

Đây là cách của tôi mẫu trông:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> 
    <TemplateData> 
    <DefaultName>page.pug</DefaultName> 
    <Name>Pug File</Name> 
    <Description>This is a basic pug file template (previously Jade)</Description> 
    <ProjectType>CSharp</ProjectType> 
    <TemplateGroupID>AspNetCore</TemplateGroupID> 
    <TemplateID>AspNetCore.Pug</TemplateID> 
    <NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp> 
    <Icon>__TemplateIcon.ico</Icon> 
    <PreviewImage>__PreviewImage.ico</PreviewImage> 
    <SortOrder>10</SortOrder> 
    <ShowByDefault>false</ShowByDefault> 
    </TemplateData> 
    <TemplateContent> 
    <References /> 
    <ProjectItem ReplaceParameters="true">page.pug</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

khu vực chú ý đến: ProjectType, TemplateGrou PID, TemplateId (tạo theo ý của bạn) và NumberOfParentCategoriesToRollUp

tôi muốn mẫu của tôi xuất hiện chủ yếu trong "Nội dung" thể loại, nơi HTML và CSS kiểu mẫu được vì vậy tôi đặt file zip của tôi trong

Visual Studio 2017\Templates\ItemTemplates\Visual C#\AspNetCore\Web\Content 

Tôi phải tạo một vài thư mục (AspNetCore \ Web \ Content) để lấy cấu trúc này.

Sau đó, cài đặt "NumberOfParentCategoriesToRollUp" được đặt thành 2 cho phép mẫu hiển thị trong danh mục "Nội dung", nhưng cũng "cuộn lên" và hiển thị trong danh mục Web và AspNetCore. Thông tin

Thông tin thêm về tổ chức các mẫu ở đây:

https://docs.microsoft.com/en-us/visualstudio/ide/how-to-locate-and-organize-project-and-item-templates

Sau đó, khi bạn đang làm tất cả, mở một visual studio 2017 command prompt nhà phát triển và loại:

devenv /updateconfiguration 
Các vấn đề liên quan