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

4
我定义了一个名为 classDB.cs 的Visual Studio模板。我希望类的默认名称显示为[projectname]DB.cs,其中[projectname]是当前项目的名称(在创建项目对话框中输入)。有办法实现这个吗?我尝试将类的名称设置为$safeprojectname$DB.cs,但没有成功。
更新:
我修改了我的项目模板,但在生成项目时出现以下错误。
请参考下方的模板类:
namespace $safeprojectname$.Models
{
    public class $safeprojectname$DB : DbContext
    {

    }
}

the class in the project


你的意思是什么?我需要在templateParameter后面加一个点吗? - Jorge
1
我的意思是,你的问题除了一个逗号和过多的问号之外,没有任何标点符号,这让它非常难以阅读或理解。 - Polynomial
多项式的评论是指我重写之前的问题。 - Dan Davies Brackett
2个回答

3

我曾经也遇到过类似的错误,并且为此奋战了好几天,最终找到了解决方法。Visual Studio会在.csproj文件中转义$符号。因此,您将看到一个节点,像这样:

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

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

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

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


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


你好,感谢询问。如果这是一个项目模板,您会以相同的方式完成它吗?因为我尝试过这样做,但遇到了麻烦。 - Jorge
应该是一样的行为,是的。请看我的编辑。具体是什么“问题”? - Otiel
抱歉,它不起作用,请检查我的问题更新,其中包含更好的问题描述。 - Jorge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接