Visual Studio 项目模板的 Camel Case 项目名称
Camel Case the project name for a Visual Studio Project Template
我正在尝试制作一个 Visual Studio 项目模板。我可以使用 $safeprojectname$
轻松替换我想要与项目同名的事物的名称
因此,如果我的项目被命名为 WidgetHunter
并且我将一个文件命名为 $safeprojectname$.js
,则在创建项目时它将被称为 WidgetHunter.js
。
但是如果我想将文件命名为 widgetHunter.js
或 widget-hunter.js
怎么办?
是否可以创建一个没有静态值的新变量?(我需要对提供的项目名称进行字符串操作。)
所以这不会像你提到的那么简单。 Project Templating 不是很强大,它是基本的替换,你不能真的 运行 编码 AFAIK。
但是,您可以 "easily" 添加一个向导步骤 (IWizard
),向替换字典添加额外的键。例如,您可以添加具有操纵值的 $safeprojectnameforjs$
。
public class ExampleWizard : IWizard
{
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
replacementsDictionary.Add("safeprojectnameforjs",
YourCustomMethodForManipulatingName(replacementsDictionary["safeprojectname"])
}
// there are a few other IWizard methods you'll need to
// implement but don't need to do anything in
}
要连接您的 ExampleWizard,您需要在 .vstemplate 中添加一个标签
<VSTemplate>
<WizardExtension>
<Assembly>ExampleWizard.ExampleWizard, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=a76e3e75702e3ee4</Assembly>
<FullClassName>ExampleWizard.ExampleWizard</FullClassName>
</WizardExtension>
</VSTemplate>
注意:您需要在程序集中安装向导。最简单的方法是创建一个新的 Class 库项目。此外,它 将 需要签名(至少,很确定这仍然是一项要求)。
最后,您需要更新 VSIX 清单,以便将向导程序集连接为程序集依赖项:
<PackageManifest>
<Assets>
<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="ExampleWizard.ExampleWizard" Path="|ExampleWizard.ExampleWizard|" AssemblyName="|ExampleWizard.ExampleWizard;AssemblyName|" />
</Assets>
</PackageManifest>
我正在尝试制作一个 Visual Studio 项目模板。我可以使用 $safeprojectname$
因此,如果我的项目被命名为 WidgetHunter
并且我将一个文件命名为 $safeprojectname$.js
,则在创建项目时它将被称为 WidgetHunter.js
。
但是如果我想将文件命名为 widgetHunter.js
或 widget-hunter.js
怎么办?
是否可以创建一个没有静态值的新变量?(我需要对提供的项目名称进行字符串操作。)
所以这不会像你提到的那么简单。 Project Templating 不是很强大,它是基本的替换,你不能真的 运行 编码 AFAIK。
但是,您可以 "easily" 添加一个向导步骤 (IWizard
),向替换字典添加额外的键。例如,您可以添加具有操纵值的 $safeprojectnameforjs$
。
public class ExampleWizard : IWizard
{
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
replacementsDictionary.Add("safeprojectnameforjs",
YourCustomMethodForManipulatingName(replacementsDictionary["safeprojectname"])
}
// there are a few other IWizard methods you'll need to
// implement but don't need to do anything in
}
要连接您的 ExampleWizard,您需要在 .vstemplate 中添加一个标签
<VSTemplate>
<WizardExtension>
<Assembly>ExampleWizard.ExampleWizard, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=a76e3e75702e3ee4</Assembly>
<FullClassName>ExampleWizard.ExampleWizard</FullClassName>
</WizardExtension>
</VSTemplate>
注意:您需要在程序集中安装向导。最简单的方法是创建一个新的 Class 库项目。此外,它 将 需要签名(至少,很确定这仍然是一项要求)。
最后,您需要更新 VSIX 清单,以便将向导程序集连接为程序集依赖项:
<PackageManifest>
<Assets>
<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="ExampleWizard.ExampleWizard" Path="|ExampleWizard.ExampleWizard|" AssemblyName="|ExampleWizard.ExampleWizard;AssemblyName|" />
</Assets>
</PackageManifest>