具有 space 个字符 (char) 的 TargetFolderName

TargetFolderName with space character (char)

我正在使用 visual studio 模板来构建自定义 visual studio 模板项目。我正在尝试创建一个名为 «External Models» 的文件夹,其中包含 space 个字符,但是 visual studio 正在创建一个名为 «External%20Models» 的文件夹,将 space 替换为%20.

遵循我的 .vstemplate 文件:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">

<TemplateData>
   ...
</TemplateData>

<TemplateContent>

  <Project TargetFileName="Product.Models.csproj" File="Product.Models.csproj" ReplaceParameters="true">

    ...

    <Folder Name="GeneratedCode" TargetFolderName="GeneratedCode">
        ...
    </Folder>
    <Folder Name="External Models" TargetFolderName="External Models">
      <Folder Name="CorePatterns" TargetFolderName="CorePatterns">
        ...
      </Folder>
    </Folder>
  </Project>
</TemplateContent>

<WizardExtension>
    ...
</WizardExtension>

以及生成的 .vsix 文件的内容:

我从这个改变:

<Folder Name="External Models" TargetFolderName="External Models">
  <Folder Name="CorePatterns" TargetFolderName="CorePatterns">
        ...
  </Folder>
</Folder>

至此,开始工作。

<Folder Name="ExternalModels" TargetFolderName="External Models">
  <Folder Name="CorePatterns" TargetFolderName="CorePatterns">
        ...
  </Folder>
</Folder>

解释:

创建.vsix 安装程序生成哪些文件夹并不重要。重要的是 TargetFolderName="External Models" 标签名称,它将生成项目文件夹(在 Visual Studio->File->Create new project 期间)。通过将 Name="External Models" 更改为 Name="ExternalModels" 并在生成 .vsix 的模板项目中,将文件夹的名称 "External Models" 更改为 "ExternalModels" everithing 将正常工作。