วิธีการตั้งค่าตำแหน่งเทมเพลตโครงการในหน้าต่างโครงการใหม่ในองค์ประกอบ TemplateData

ฉันกำลังสร้างเทมเพลตโครงการใหม่เป็นโครงการส่วนขยาย Visual Studio และต้องการให้แสดงในกลุ่มที่กำหนดเองของฉันซึ่งมีอยู่ก่อนที่จะติดตั้งเทมเพลตโครงการ ภายใต้โหนด Visual C#

ป้อนคำอธิบายรูปภาพที่นี่

ฉันหวังว่าจะเป็นไปได้ที่จะตั้งค่าตำแหน่งเทมเพลตโครงการในส่วน TemplateData ของไฟล์ .vstemplate ฉันได้ลองตั้งค่า ProjectSubType, TemplateGroupID, NumberOfParentCategoriesToRollUp แล้ว แต่มันไม่ทำงาน เมื่ออินสแตนซ์ทดลองของ Visual Studio เริ่มต้น เทมเพลตโครงการจะอยู่ในกลุ่ม Visual C# เสมอ แต่ไม่อยู่ใน Visual C#/กลุ่มของฉัน ProjectSubType ไม่ทำงานแม้ว่าจะมีกลุ่มของฉันอยู่แล้ว แต่เอกสารประกอบ บอกว่าควรสร้างในกลุ่มย่อย ฉันจะกำหนดตำแหน่งเทมเพลตโครงการในส่วน TemplateData ได้อย่างไร


person Dmytro    schedule 15.03.2018    source แหล่งที่มา


คำตอบ (1)


เทมเพลตแบบกำหนดเองไม่รวมไดเร็กทอรีย่อยสำหรับเทมเพลตที่แปลเป็นภาษาท้องถิ่น คุณสามารถเปลี่ยนไดเร็กทอรีเริ่มต้นสำหรับเทมเพลตแบบกำหนดเองได้ในกล่องโต้ตอบตัวเลือก ภายใต้ สภาพแวดล้อม\โครงการและโซลูชัน

ฉันมักจะเพิ่มโฟลเดอร์ด้วยตนเองแล้วคัดลอกไฟล์ zip เช่น ฉันสร้างโฟลเดอร์ชื่อ "กลุ่มของฉัน" ใต้โฟลเดอร์ C:\Users\xxx\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#

จากนั้นสร้างแอปคอนโซลง่ายๆ ชื่อ Jack และส่งออกเทมเพลตโปรเจ็กต์นี้ ฉันไม่ได้เลือกตัวเลือกนี้ ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นฉันก็คัดลอก Jack.zip ไปยังโฟลเดอร์ My Group ด้านบน เปิด VS อีกครั้ง ฉันจะได้รับเทมเพลตโครงการนี้ภายใต้โฟลเดอร์ My Group

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือไฟล์ .vstemplate เริ่มต้นในด้านของฉัน:

    <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
  <TemplateData>
    <Name>Jack</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <ProjectSubType>
    </ProjectSubType>
    <SortOrder>1000</SortOrder>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>Jack</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
    <LocationField>Enabled</LocationField>
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <Project TargetFileName="Jack.csproj" File="Jack.csproj" ReplaceParameters="true">
      <ProjectItem ReplaceParameters="true" TargetFileName="App.config">App.config</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
      <Folder Name="Properties" TargetFolderName="Properties">
        <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
      </Folder>
    </Project>
  </TemplateContent>
</VSTemplate>
person Fletcher    schedule 16.03.2018
comment
ขอบคุณสำหรับคำตอบ แต่ฉันไม่ต้องการคัดลอกเทมเพลตที่ติดตั้งด้วยตนเอง ฉันส่งออกเทมเพลตเป็นส่วนขยาย Visual Studio และหลังจากที่ฉันสร้างไฟล์ VSIX และติดตั้งส่วนขยายของฉัน ฉันต้องการให้เทมเพลตของฉันอยู่ในตำแหน่งโดยไม่ต้องปรับแต่งด้วยตนเอง - person Dmytro; 16.03.2018
comment
หากเป็นเช่นนั้น จะสามารถสร้างโฟลเดอร์ใหม่ กลุ่มของฉัน ในโฟลเดอร์เทมเพลตโครงการเริ่มต้นได้หรือไม่ มันสามารถคัดลอกไฟล์ zip ไปยังโฟลเดอร์ที่สร้างในโครงการ VSIX ของคุณได้หรือไม่ - person Jack Zhai-MSFT; 19.03.2018
comment
ดังนั้นสิ่งที่คุณแนะนำคือสร้างโฟลเดอร์และคัดลอกไฟล์เทมเพลต .zip ที่ติดตั้งด้วยรหัส C# ถือเป็นแนวปฏิบัติที่ดีหรือไม่? ไม่มีวิธีการบางอย่างในตัวใช่ไหม และถ้าเป็นเช่นนั้น ... ฉันควรจัดการเหตุการณ์ Installation Completed นี้ที่ไหน? - person Dmytro; 21.03.2018