4

我定义了一个名为classDB.cs的Visual Studio模板。我希望该类的默认名称显示为[projectname] DB.cs,其中[projectname]是当前项目的名称(如在Create Project对话框中输入的那样)。有没有办法做到这一点?我试着将课程名称设置为$safeprojectname$DB.cs,但那不起作用。将自定义格式添加到模板参数Visual studio项目

UPDATE

我修改了项目模板,但给的这个错误时,它产生的项目

enter image description here

这里的模板类

namespace $safeprojectname$.Models 
{ 
    public class $safeprojectname$DB : DbContext 
    { 

    } 
} 

the class in the project

+1

标点符号是你的朋友! – Polynomial

+0

你是什么意思?我需要在templateParameter之后添加一个点吗? – Jorge

+1

我的意思是说,除了一个逗号和过多的尾部问号之外,您的问题不包含标点符号,因此很难阅读或理解。 – Polynomial

回答

3

我一直在与这种类似的错误作斗争几天,我终于想通了。 Visual Studio转义.csproj文件中的$。所以,你将有一个看起来像这样的节点:

<Compile Include="Models\%24safeprojectname%24DB.cs" /> 

打开一个文本编辑器中的.csproj文件,并将其更改为:

​​

并保存文件。您的项目将重新加载,但它不会尝试再次跳过文件名!导出你的模板,你会发现参数现在被替换。

2

尝试的模板是这样的:

using System; 
//... 

namespace $rootnamespace$ { 
    class $safeitemname$DB { 
    } 
} 

为我工作。

确保更新了正确的模板(应位于Windows 7上的C:\Users\[user]\Documents\Visual Studio 2010\Templates\ItemTemplates下)并重新启动Visual Studio。


编辑

上面的代码是项模板,但不应该从一个项目模板不同。根据MSDN的$safeitemname$$safeprojectname$参数相同的行为:

safeitemname
用户在添加新项对话框中提供,并移除所有不安全的字符和空格的名称。

safeprojectname
通过在新建项目对话框中的用户提供,并移除所有不安全的字符和空格的名称。

+0

嗨,谢谢你问,如果这是一个项目模板,你会以同样的方式做到这一点?因为我这样试过,它给我带来了麻烦 – Jorge

+0

这应该表现得一样,是的。看我的编辑。什么是“麻烦”? – Otiel

+0

抱歉,但它不起作用检查我的问题的更新,以更好地描述我的问题 – Jorge

-1

对于有人需要它的情况:

我试图添加接口类,不知道怎么才达到该接口名称是从类的名字组成的这样I + $fileinputname$


*.vstemplate文件只需使用I$fileinputname$.cs为接口的TargetFileName

<TemplateContent> 
    <ProjectItem TargetFileName="$fileinputname$.cs" ReplaceParameters="true">SomeClass.cs</ProjectItem> 
    <ProjectItem TargetFileName="I$fileinputname$.cs" ReplaceParameters="true">ISomeClass.cs</ProjectItem> 
</TemplateContent> 

ISomeClass.cs文件再次使用I$fileinputname$为接口的名称:

namespace $rootnamespace$ 
{ 
    public interface I$fileinputname$ 
    { 
    } 
} 

重要:

文件 SomeClass.csISomeClass.csNone

设置生成操作,因为这个项目是为了构建一个.zip文件,而不是.dll或.exe文件, 代码文件不会编译或代码被处理构建目标( .vstemplate文件的构建操作为VSTemplate)。


由于当SomeClass.cs添加作为Item template对应的接口ISomeClass.cs加入结果。

enter image description here

相关问题