我的Visual Studio 2008模板出了什么问题?

我正在尝试为Visual Studio创建一个名为“Public Class”的类模板。

我按照官方MSDN说明如何手动创建一个项目模板 ,但是我没有运气让模板显示在“添加新项”对话框的“我的模板”部分。

我将PublicClass.zip放在以下Windows XP目录中:

C:\ Documents and Settings \ My User Name \ My Documents \ Visual Studio 2008 \ Templates \ ItemTemplates \ Visual C#。

Public Class.zip包含以下文件:

  1. PublicClass.cs
  2. PublicClass.ico
  3. 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包含……

    Public Class An empty class declaration with access modifier = public and namespace = Pse.NameOfProject PublicClass.ico CSharp PublicClass.cs   PublicClass.cs   

我启动了Studio,试图在我的项目中添加一个新项目,但我的模板无处可寻。 所以,我遵循了这个stackoverflow问题的建议,即调用…

 devenv.exe /installvstemplates 

…来自命令行,但所有这些都使得所有模板(包括内置模板)都消失了。 经过一段时间的恐慌之后,我最终在执行命令几次后将它们取回,但这显然不适合我。

如果您在此处看到我的手术有任何问题,请帮帮我吗?

提前致谢。

编辑:

如果我使用文件/导出模板(由Preet建议),模板确实显示在我的模板中,但参数未正确替换。

如果我插入一个新的“公共类”,这就是我得到的:

 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$ ,但没有区别。)

这绝对是那些试图让我的生活更方便的情况之一,恰恰相反的效果:)

我有这个问题:)

而且我认为我设法解决了它我正在做一些非常相似的事情,我真正想要的是有一个标准模板,它有我们的svn系统的标题我最终提取Foo中的现有Class.zip文件:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033然后编辑它我最终得到了这个

 // $Id$ // $Author$ namespace $rootnamespace$ { using System; using System.Collections.Generic; $if$ ($targetframeworkversion$ == 3.5) using System.Linq; $endif$ using System.Text; public class $safeitemrootname$ { } } 

$ if $语句的间距似乎确实有所不同如果我在它们之前有选项卡或间隔,它们将无法正确评估,或者更确切地说它们会按照您所看到的进行评估,但只是在我的代码中打印出来。

至于运行/ installvstemplates时你的模板消失了,你可能会注意到cmd需要花费很长时间才能运行,它实际上是删除Foo:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplatesCache然后通过提取原始位置中的zip文件来重建该文件夹,如上所述。 对于此命令来说,在运行它时最好关闭visual studio,并且应该等到命令完成后重新启动它。 (提示我以前实际监控文件夹并观察它的构建)。

个人虽然这是一个灵活的系统,微软真的可以让用户更容易,毕竟R#将其作为简单的右键单击function,如果你有R#,这是在ms系统之外实现模板的最简单方法。

如果希望它在Visual Studio 2008中工作,则必须在.vstemplate文件 更改为 。 然后将.zip文件放在您指定为用户项模板位置的文件中

我手动创建的ZIP文件有问题。 除非我导出现有模板并更改它,否则我永远不会出现模板。 这些是说明