Для случая, когда это кому-то нужно:
Я пытался добавить интерфейс к классу и не знал, как добиться, чтобы имя интерфейса состояло из имени класса, подобного этому I
+ $fileinputname$
.
В *.vstemplate
файле просто используйте I$fileinputname$.cs
для TargetFileName
интерфейса:
<TemplateContent>
<ProjectItem TargetFileName="$fileinputname$.cs" ReplaceParameters="true">SomeClass.cs</ProjectItem>
<ProjectItem TargetFileName="I$fileinputname$.cs" ReplaceParameters="true">ISomeClass.cs</ProjectItem>
</TemplateContent>
В файле ISomeClass.cs
снова используйте I$fileinputname$
для имени интерфейса:
namespace $rootnamespace$
{
public interface I$fileinputname$
{
}
}
Важно:
Установите для действия по сборке файлов SomeClass.cs
и ISomeClass.cs
значение None
, поскольку данный проект предназначен для создания файла .zip, а не файла .dll или .exe,
файлы кода не компилируются и не рассматриваются как код целевыми объектами сборки (
Файл .vstemplate
имеет действие сборки VSTemplate
. ).
В результате, когда SomeClass.cs
добавляется как Item template
, добавляется соответствующий интерфейс ISomeClass.cs
.