【发布时间】:2010-11-16 06:19:52
【问题描述】:
我正在尝试为 Visual Studio 创建自己的类模板,名为“Public Class”。
我几乎完全按照the official MSDN instructions on how to manually create an Item Template 进行操作,但我没有让模板显示在“添加新项目”对话框的“我的模板”部分。
我将 PublicClass.zip 放在以下 Windows XP 目录中:
C:\Documents and Settings\我的用户名\我的文档\Visual Studio 2008\Templates\ItemTemplates\Visual C#。
Public Class.zip 包含以下文件:
- PublicClass.cs
- PublicClass.ico
- PublicClass.vstemplate
PublicClass.cs 包含...
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace Pse.$projectname$
{
public class $safeitemname$
{
}
}
PublicClass.vstemplate 包含...
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate
Type="Item"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Public Class</Name>
<Description>An empty class declaration with access modifier = public and namespace = Pse.NameOfProject</Description>
<Icon>PublicClass.ico</Icon>
<ProjectType>CSharp</ProjectType>
<DefaultName>PublicClass.cs</DefaultName>
</TemplateData>
<TemplateContent>
<ProjectItem ReplaceParameters="true">PublicClass.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
我启动了 Studio,试图在我的项目中添加一个新项目,但找不到我的模板。于是,我听从了this stackoverflow question的建议,就是打电话……
devenv.exe /installvstemplates
...从命令行,但所做的只是使所有模板(包括内置模板)消失。经过片刻的恐慌后,我最终在多次运行命令后将它们恢复了,但这显然不是我的答案。
如果您在此处发现我的程序有任何问题,您能帮帮我吗?
提前致谢。
编辑:
如果我使用文件/导出模板(如 Preet 建议的那样),模板确实会显示在我的模板中,但参数没有正确替换。
如果我插入一个新的“Public Class”,这就是我得到的:
using System;
using System.Collections.Generic;
$if$ (3.5 == 3.5)using System.Linq;
$endif$using System.Text;
namespace Pse.$projectname$
{
public class PublicClass1
{
}
}
因此,只有 $projectname$ 和 $targetframeworkversion$ 可以正确替换。它没有正确处理$if$ 语句或$projectname$。 (我也尝试过使用$safeprojectname$,但这并没有什么不同。)
这绝对是那些试图让我的生活更方便一些却产生完全相反效果的案例之一:)
【问题讨论】:
-
你正在关闭 VS 不是吗?
-
是的。我也尝试将 zip 文件移动到不同的文件夹位置。我在 Tools...Options 中验证了目录设置是否正确。
标签: c# visual-studio templates