VS2010 如何制作項目模板


模板的制作

在vs2010中制作模板文件非常簡單,直接點擊菜單中的文件à保存為模板,就可以另存為工程模板或是項目模板了。保存選項里可以選擇模板的圖標。

做好的模板需要放到下面這兩個目錄中:

C:\Documents and Settings\wz\My Documents\Visual Studio 2010\Templates\ProjectTemplates

C:\Documents and Settings\wz\My Documents\Visual Studio 2010\Templates\ItemTemplates

然后新建一個工程,你就發現這些模板已經可以用了。

模板中參數使用注意事項:

1,對於工程模板

由於牽涉到程序集的一些信息,比如公司信息,guid等,需要用模板變量來替換,不然每次生成的工程都一樣了。AssemblyInfo.cs文件需要做如下的修改:

[assembly: AssemblyTitle("$safeprojectname$")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("$registeredorganization$")]
[assembly: AssemblyProduct("$safeprojectname$")]
[assembly: AssemblyCopyright("Copyright (C) $registeredorganization$ $year$")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: Guid("$guid1$")]

項目中的類使用的命名空間要用$safeprojectname$:

namespace $safeprojectname$
{
}

2,對於項目模板

這里已經羅列出了所有的保留模板參數,這些參數對於工程模板是一樣的,唯一有點區別的是:$rootnamespace$僅在項目模板中有效,而$projectname$在工程模板才有效的。

項目模板中的namespace要用$rootnamespace$

namespace $rootnamespace$
{
    /// <summary>
    /// clrversion:$clrversion$
    /// Guid:$guid1$
    /// itemname:$itemname$
    /// machinename:$machinename$
    /// projectname:$projectname$
    /// registeredorganization:$registeredorganization$
    /// safeprojectname:$safeprojectname$
    /// time:$time$
    /// userdomain:$userdomain$
    /// username:$username$
    /// webnamespace:$webnamespace$
    /// year:$year$
    /// </summary>
    public class $safeitemname$ : BaseLibrary
    {
    }
}

帶safe開頭的幾個變量去掉了不安全字符和空格。

添加一個項目后的效果:

namespace CMM.UserKanriApi.ClientTier.BusinessLogic
{
    /// <summary>
    /// clrversion:4.0.30319.269
    /// Guid: 5c7655a2-5413-4031-98fb-b52c8e1a52a0
    /// itemname:GetSemmeiBusinessLogic
    /// machinename:ss-pc
    /// projectname:$projectname$
    /// registeredorganization:sk
    /// safeprojectname:$safeprojectname$
    /// time:2012/09/11 14:51:28
    /// userdomain: ss-pc
    /// username:wz
    /// webnamespace:$webnamespace$
    /// year:2012
    /// </summary>
    public class GetSemmeiBusinessLogic : BaseLibrary
    {
    }
}

用上面這些保留參數基本上就可以滿足我們的要求了。如果需要一些更復雜的配置,可以修模板的MyTemplate.vstemplate文件。如添加自定義參數(摘自MSDN):

<TemplateContent>
    ...
    <CustomParameters>
        <CustomParameter Name="$MyParameter1$" Value="MyValue2"/>
        <CustomParameter Name="$MyParameter2$" Value="MyValue2"/>
    </CustomParameters>
</TemplateContent>

在模板的一個或多個代碼文件中使用該參數。 例如:

string Value1 = "$MyParameter1"
string Value2 = "$MyParameter2"

3,對於webservice類型的模板,要再次編輯模板文件。

webservice類型的文件包含一個xxx.asmx,這個文件默認是不進行參數替換的,造成每次加入一個模板文件,修改了類名,但是這個文件里對應的類名沒有隨着變化。造成程序錯誤,對應方法可以手動修改這個文件,但最好的方式是建模板文件的時候從新修改一下模板,就可以解決這個問題,具體修改方法如下:

打開MyTemplate.vstemplate這個文件,

1,對於xxx.asmx文件,ReplaceParameters改為true,加入OpenInEditor="false" 

2,對於xxx.asmx.cs文件,加入OpenInEditor="true"。

  <TemplateContent>
    <References />
    <ProjectItem OpenInEditor="false" SubType="" TargetFileName="$fileinputname$.asmx" ReplaceParameters="true">WebService_t.asmx</ProjectItem>
    <ProjectItem OpenInEditor="true" SubType="Code" TargetFileName="$fileinputname$.asmx.cs" ReplaceParameters="true">WebService_t.asmx.cs</ProjectItem>
  </TemplateContent>

3,修改xxx.asmx文件內容為:

<%@ WebService Language="C#" CodeBehind="$fileinputname$.asmx.cs" Class="$rootnamespace$.$safeitemname$" %>

4,重新打包上訴的幾個文件成zip文件。收工。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM