4

我已经定义了一个名为classDB.cs. 我希望该类的默认名称显示为 [projectname]DB.cs,其中 [projectname] 是当前项目的名称(在“创建项目”对话框中输入)。有没有办法做到这一点?我尝试将类的名称设置为$safeprojectname$DB.cs,但这不起作用。

更新

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

在此处输入图像描述

这是模板类

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

    }
}

项目中的类

4

2 回答 2

3

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

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

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

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

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

于 2012-02-27T02:22:20.600 回答
2

试试这样的模板:

using System;
//...

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

为我工作。

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


编辑

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

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

safeprojectname
用户在“新建项目”对话框中提供的名称,已删除所有不安全字符和空格。

于 2011-11-04T16:17:43.163 回答