繁体   English   中英

将自定义格式添加到模板参数Visual Studio项目中

[英]Adding custom format to a template parameters Visual studio project

我已经定义了一个名为classDB.cs的Visual Studio模板。 我希望类的默认名称显示为[projectname] DB.cs,其中[projectname]是当前项目的名称(在Create Project对话框中输入)。 有没有办法实现这个目标? 我尝试将类的名称设置为$safeprojectname$DB.cs ,但这不起作用。

UPDATE

我修改了我的项目模板,但在生成项目时给出了这个错误

在此输入图像描述

这是模板类

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

    }
}

项目中的类

几天来,我一直在与此类似的错误作斗争,我终于明白了。 Visual Studio转义.csproj文件中的$。 所以你将有一个如下所示的节点:

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

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

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

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

尝试这样的模板:

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
用户在“新建项目”对话框中提供的名称,其中删除了所有不安全的字符和空格。

对于有人需要它的情况:

我试图将接口添加到类中,并且不知道如何实现接口名称是由类的名称组成的,例如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.cs Build Action设置为None因为此项目旨在构建.zip文件,而不是.dll或.exe文件,代码文件不会被构建目标编译或视为代码(该.vstemplate文件具有的生成操作VSTemplate )。


结果当SomeClass.cs作为Item template添加时,添加了相应的接口ISomeClass.cs

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM