2016-01-28 98 views
0

我在Visual Studio中爲一個類創建了自定義項目模板。我已經完成了所有必需的步驟,並且可以將模板作爲除「共享項目」類型之外的每個項目類型添加爲新項目。添加新項目時,它不顯示在選項列表中。我的目標是將此模板用於共享項目中的新類。Visual Studio中共享項目的項目模板

這裏是我的模板.xml文件...

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> 
    <TemplateData> 
    <DefaultName>Class_ODBC.cs</DefaultName> 
    <Name>Class_ODBC</Name> 
    <Description>Template for a class using ODBC and System.Data</Description> 
    <ProjectType>CSharp</ProjectType> 
    <SortOrder>10</SortOrder> 
    <Icon>__TemplateIcon.ico</Icon> 
    <TemplateGroupID>WinRT-Managed</TemplateGroupID> 
    </TemplateData> 
    <TemplateContent> 
    <References /> 
    <ProjectItem SubType="" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class_ODBC.cs</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

而對於模板本身的cs文件...

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.Odbc; 
using System.Text; 

namespace %rootnamespace% 
{ 
    class %safeitemname% 
    { 
    #region Fields 

    #endregion 
    #region Constructors 

    #endregion 
    #region Methods 

    #endregion 
    #region Events/Handlers 

    #endregion 
    #region Properties 

    #endregion 
    } 
#region Exceptions 

#endregion 
} 

任何幫助是極大的讚賞。

回答

0

我試圖達到同樣的效果,文檔沒有提供太多的幫助,但是檢查了Shared項目中提供的一個已經提供的模板,發現它可以通過vstemplate中的<AppliesTo>元素完成。我不知道爲什麼VS凸顯標籤是不正確的架構,爲MSDN明確指出它是有效的

最後的結果看起來是這樣

<?xml version="1.0" encoding="utf-8"?> 
<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>Custom ViewModel</Name> 
    <Description>Custom ViewModel</Description> 
    <Icon>MyViewModelTemplate.ico</Icon> 
    <TemplateID>6dde10d5-17ae-4cf1-9880-dc448eca638d</TemplateID> 
    <TemplateGroupID>WinRT-Managed</TemplateGroupID> 
    <AppliesTo>CSharp</AppliesTo> 
    <ProjectType>CSharp</ProjectType> 
    <SortOrder>1</SortOrder> 
    <RequiredFrameworkVersion>4.5</RequiredFrameworkVersion> 
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp> 
    <DefaultName>ViewModel.cs</DefaultName> 
    <TargetPlatformName>Windows</TargetPlatformName> 
    <RequiredPlatformVersion>8</RequiredPlatformVersion> 
    </TemplateData> 
    <TemplateContent> 
    <ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class.cs</ProjectItem> 
    </TemplateContent> 
</VSTemplate> 

希望這有助於。

0

在Visual Studio安裝的模板中進行了深入研究之後,我發現要將模板添加到子類別(例如C#下的Shared Project)中,需要創建一個與子類別名稱相同的文件夾該文件夾中的模板。

「AppliesTo」標籤似乎只適用於頂級類別。

+0

可否請您分享您的解決方案如何做到這一點。 – PhuocLe