VSTemplate TargetFolderName с параметрами

Я пытаюсь создать ItemTemplate, который будет похож на область MVC. Во всяком случае, я не могу создать Folder в TemplateContent, которая будет иметь TargetFolderName с параметром. Вот упрощенный пример моего раздела TemplateContent:

<TemplateContent>
    <Folder Name="Area" TargetFolderName="$AreaName$">
        <ProjectItem ReplaceParameters="true" TargetFileName="$AreaName$Controller.cs">Controller.cs</ProjectItem>
    </Folder>
</TemplateContent>

Хотя MSDN указывает, что TargetFolderName является

полезно для использования замены параметра для создания имени папки или присвоения имени папке международной строки, которую нельзя использовать непосредственно в ZIP-файле.

Несмотря на это, я не смог выполнить эту работу.

Ожидаемый результат для ввода 'TestArea':

TestArea
   |__ TestAreaController.cs

Фактический результат:

$AreaName$
   |__ TestAreaController.cs

Кто-нибудь может помочь?

Заранее спасибо.


person Ivan Peric    schedule 29.11.2013    source источник


Ответы (2)


Только что нашел обходной путь здесь:

Могу ли я создать новую папку с Шаблон элемента Visual Studio

Итак, как я это решил:

<TemplateContent>
    <ProjectItem ReplaceParameters="true" TargetFileName="$AreaName$\$AreaName$Controller.cs">Controller.cs</ProjectItem>
</TemplateContent>
person Ivan Peric    schedule 29.11.2013

У меня была та же проблема, что и у вас, но ваше решение не совсем решило мою проблему, поэтому я придумал более комплексное решение (которое работает для Visual Studio 2015).

Вам необходимо внести изменения, которые вы внесли в файл шаблона:

<TemplateContent>
    <Folder Name="Area" TargetFolderName="$AreaName$">
    <ProjectItem ReplaceParameters="true" TargetFileName="$AreaName$Controller.cs">Controller.cs</ProjectItem>
    </Folder>
</TemplateContent>

и, кроме того, внесите некоторые изменения в файл .csproj (проект) и в операторах включения (теги «Compile Include» и «None Include») убедитесь, что путь к файлу для файлов, которые вы помещаете в новую папку, является совпадает с новым путем к файлу, который вы указали в файле шаблона.

person AdamTups    schedule 15.12.2015