2016-05-23 147 views
0

我正在使用VS 2015模板为我创建一个项目,在我的C#类中我有像$projectname$这样的替换项,并且如果我将这样的项目命名为MyTemplatedProject,它们会很好用。我使用$projectname$作为类名和命名空间的一部分。Visual Studio模板 - 自定义参数

如果我创建了一个像$projectname$Context这样的类,它就变成了MyTemplatedProjectContext,一切都很好。

但是如果我命名我的项目MyTemplatedProject.FrontEnd我有类生成的问题,因为他们的名字中有.

替代$projectname$Context变成MyTemplatedProject.FrontEndContext并且不适用于类名称。

如何创建基于$projectname$自定义参数,最好我将有一个参数像$projectnameUpToFirstDot$仅当该项目名称为MyTemplatedProject.FrontEndContext返回MyTemplatedProject

回答

0

我在一周前有完全相同的问题。我只需要在我的模板中使用一些定制变量,这将在$projectname$大写字母和小写字母中分别解析。像这样的东西。

事实证明,使用VS'自定义向导模板开发我自己的项目向导是最有效和灵活的方式。

除非JavaScript & HTML对你来说不是一件容易的事,在那里对变量如$projectname$进行一些字符串操作是非常容易的。

一旦你设置它,去default.js和编辑功能

function onFinish() 
{ 
    ... 

    var prjName = wizard.FindSymbol('PROJECT_NAME'); 

    wizard.AddSymbol('PROJECT_NAME_WITHOUT_DOTS', prjName.split('.')[0]); 

    ... 
} 

split('.')删除所有点和它devides到字符串数组。用[0]选择第一个点的部分。

在你的模板文件,然后你可以解决符号PROJECT_NAME_WITHOUT_DOTS语法如下:

class [!output PROJECT_NAME_WITHOUT_DOTS] { 
    ... 
} 
+0

我在哪里可以找到自定义向​​导模板? – Bryan

+0

单击_File-> New-> Project ..._并选择_Templates-> Visual C++ - > General_。你会发现自定义向导。它只会出现在那里,如果你用它的C++组件安装VS。对不起,迟到的答案。 – qdbp

0

如果你只是想根据项目名称,生成有效的类名,而不是创建一个自定义模板参数,你可以改变$projectname$$safeprojectname$,这是documented为:

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