1. 创建VSDIR文件
2. 创建VSZ文件
3. 创建默认的javascripts
4. 创建文件模板
1.创建VSDIR文件
到目录
<Program Files>\Microsoft Visual Studio .NET 2003\VC#\CSharpProjects下创建
VSDIR 提供了模板的基本信息,如名字,描述和图标等
参数请参照http://msdn.microsoft.com/en-us/library/2sc7ft4a(v=vs.80).aspx
如:
MyTemplate.vsz|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|My Template|10|This is a project template for creating my own things|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4548||MyTemplate
参数如下图
2.创建VSZ文件
到目录
<Program Files>\Microsoft Visual Studio .NET 2003\VC#\CSharpProjects下创建
创建如下文件内容
VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.7.1
Param="WIZARD_NAME = MyTemplate"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE = CSPROJ"
注意,不同的VS版本对应不同的VsWizard.VsWizardEngine的版本
参数如下:
在这里,我们用VsWizard 对象,然后在项目模板里就能看到MyTemplate的模板
3.把文件添加到项目中
VS会查找如下目录<Program Files>\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards 的脚本文件
创建如下文件
文件夹:
<Program Files>Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\MyTemplate
文件夹
<Program Files>\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\MyTemplate\Scripts\1033
创建如下的脚本文件:
function OnFinish(selProj, selObj) {
var oldSuppressUIValue = true;
try {
oldSuppressUIValue = dte.SuppressUI;
var strProjectPath = wizard.FindSymbol("PROJECT_PATH");
var strProjectName = wizard.FindSymbol("PROJECT_NAME");
var strSafeProjectName = CreateSafeName(strProjectName);
wizard.AddSymbol("SAFE_PROJECT_NAME", strSafeProjectName);
var proj = CreateCSharpProject(strProjectName, strProjectPath, "default.csproj");
var InfFile = CreateInfFile();
if (proj) {
AddReferencesForClass(proj);
AddFilesToCSharpProject(proj, strProjectName, strProjectPath, InfFile, false);
}
proj.Save();
}
catch(e) {if( e.description.length > 0 )
SetErrorInfo(e);
return e.number;
}
finally {
dte.SuppressUI = oldSuppressUIValue;
if( InfFile )
InfFile.Delete();
}
}
function GetCSharpTargetName(strName, strProjectName) {
var strTarget = strName;
switch (strName) {
case "File1.cs":
strTarget = "Class1.cs";
break;
}
return strTarget;
}
function DoOpenFile(strName) {
var bOpen = false;
switch (strName) {
case "Class1.cs":
bOpen = true;
break;
}
return bOpen;}
function SetFileProperties(oFileItem, strFileName) {
if(strFileName == "File1.cs") {
oFileItem.Properties("SubType").Value = "Code";
}
}
这个脚本文件执行并创建项目,他会告诉 wizard 你的项目需要做什么,
4. 创建模板
创建如下目录
目录:
<Program Files>Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\MyTemplate
目录
<Program Files>\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\MyTemplate\Templates\1033
创建一个叫Templates.inf 的文件
在里面如下:
File1.cs
然后创建File1.cs文件
内容如下:
namespace [!output SAFE_NAMESPACE_NAME] {
using System;
/// <summary>
/// [!output SAFE_CLASS_NAME].
/// </summary>
class [!output SAFE_CLASS_NAME] {
/// <summary>
/// The main entry point for the application.
/// </summary>
static void <?xml namespace="namespace" prefix="st1" ?>Main(string[] args) {
//
// TODO: Add code to start application here
//
}
}
}