Visual Studio 项目模板的 Camel Case 项目名称

Camel Case the project name for a Visual Studio Project Template

我正在尝试制作一个 Visual Studio 项目模板。我可以使用 $safeprojectname$

轻松替换我想要与项目同名的事物的名称

因此,如果我的项目被命名为 WidgetHunter 并且我将一个文件命名为 $safeprojectname$.js,则在创建项目时它将被称为 WidgetHunter.js

但是如果我想将文件命名为 widgetHunter.jswidget-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>