【问题标题】:Adding custom format to a template parameters Visual studio project将自定义格式添加到模板参数 Visual Studio 项目
【发布时间】:2011-11-04 15:53:14
【问题描述】:

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

更新

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

这是模板类

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

    }
}

【问题讨论】:

  • 你是什么意思?需要在templateParameter后面加一个点吗?
  • 我的意思是你的问题没有标点符号,除了一个逗号和过多的尾随问号,因此很难阅读或理解。
  • 多项式的cmets指的是我重写之前的问题。

标签: c# visual-studio visual-studio-2010 templates visual-studio-templates


【解决方案1】:

几天来我一直在与类似的错误作斗争,我终于弄明白了。 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$ 参数的行为相同:

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

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

    【讨论】:

    • 嗨,谢谢你的提问,如果这是一个项目模板,你会以同样的方式做吗?因为我试过这样,它给我带来了麻烦
    • 这应该是一样的,是的。请参阅我的编辑。究竟是什么“麻烦”
    • 对不起,但它不起作用检查我的问题的更新,更好地描述我的问题
    猜你喜欢
    • 2018-08-03
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多