2010年1月12日 星期二

自訂 Visual Studio Project Template (2)

繼上一個自訂 Visual Studio Project Template (1),接下來說明的是多專案的 template.

通常,一個 project template 只會產生一個專案。但最適當的結構,卻是一個解決方案(Solution),至少分個三層(3-layer)。以下僅以兩個專案的 solution 來作為範例。

如上一次的例子,這一次多了一個 BusinessComponents的 class library(類別庫)。而 WebApplication4會 reference 到 BusinessComponents

image

分別將 BusinessComponents 及 WebApplication4以上一次的方法匯出 project template。解壓縮zip檔後,在 My Exported template 目錄下,增加一個 MyTemplate.vstemplate 及 __TemplateIcon.ico 檔。結構如下圖(已將 zip 檔刪除掉)

image

檔案結構看來如下

Directory \Documents\Visual Studio 2008\My Exported Templates
2010/01/12  上午 11:38    <DIR>          CCBusinessComponents
2010/01/12  上午 11:38    <DIR>          CCWebApplication
2010/01/12  下午 03:45               714 MyTemplate.vstemplate
2003/05/06  下午 03:49             5,430 __TemplateIcon.ico

Directory \Documents\Visual Studio 2008\My Exported Templates\BusinessComponents
2010/01/12  上午 11:36               235 Class1.cs
2010/01/12  上午 11:36             2,510 ClassLibrary1.csproj
2010/01/12  上午 11:36             1,128 MyTemplate.vstemplate
2010/01/12  上午 11:36            10,134 __TemplateIcon.ico

Directory \Documents\Visual Studio 2008\My Exported Templates\CCWebApplication
2010/01/12  上午 11:36               452 Default.aspx
2010/01/12  上午 11:36               323 Default.aspx.cs
2010/01/12  上午 11:36               772 Default.aspx.designer.cs
2010/01/12  上午 11:36             1,854 MyTemplate.vstemplate
2010/01/12  上午 11:36               749 Vender.aspx
2010/01/12  上午 11:36               468 Vender.aspx.cs
2010/01/12  上午 11:36             1,141 Vender.aspx.designer.cs
2010/01/12  上午 11:36             7,868 Web.config
2010/01/12  上午 11:36             4,755 WebApplication4.csproj
2010/01/12  上午 11:36            10,134 __TemplateIcon.ico

簡單來說,就是 solution folder + 下面的 project folder。每個 folder 都要有 .vstemplate 檔案。project folder 可以使用 project template 的 zip 來解壓縮即可。而 solution folder 下的 .vstemplate 就必須就必須自行編輯。如下範例

<?xml version="1.0"?>
<VSTemplate xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Version="2.0.0" Type="ProjectGroup">
    <TemplateData>
        <Name>CCWebWebSolution</Name>
        <Description>CC web solution starter template</Description>
        <Icon>__TemplateIcon.ico</Icon>
        <ProjectType>CSharp</ProjectType>
        <ProjectSubType>Web</ProjectSubType>
    </TemplateData>
    <TemplateContent>
        <ProjectCollection>
            <ProjectTemplateLink ProjectName="WebSite">CCWebApplication\MyTemplate.vstemplate</ProjectTemplateLink>
            <ProjectTemplateLink ProjectName="BusinessComponents">BusinessComponents\MyTemplate.vstemplate</ProjectTemplateLink>
        </ProjectCollection>
    </TemplateContent>
</VSTemplate>

重點放在結構上。不難的。
在檔案總管上選取所有檔案,傳送到壓縮檔並取名為 CCWebSolutionTemplate.zip,並複製到 \Documents\Visual Studio 2008\Templates\ProjectTemplates 下。

image

重新啟動 Visual Studio 2008, 新增專案時,就可以看到我們的 template 了

image

可參考 msdn 的說明 HOW TO:建立多專案的範本
範例下載

沒有留言:

Share with Facebook