Как создать оцененный пользовательский параметр в VSTemplate

Таким образом, я изменяю шаблон VS для нескольких проектов (шаблон проекта Visual Studio) и хочу установить пользовательский параметр в корневом шаблоне, который будет использоваться вспомогательными шаблонами. Однако я хочу установить его на основе существующего параметра.

Так, например, это работает нормально:

<CustomParameter Name="$FaultProject$" Value="MyProject.FaultContracts"/>

Переменная $ FaultProject $ заменяется MyProject.FaultContracts, как и должно быть.

Это, однако, не работает:

<CustomParameter Name="$FaultProject$" Value="$safeprojectname$.FaultContracts"/>

Я ожидаю, что $ safeprojectname $ будет заменено на правильное значение, но это не так. Вместо этого переменная $ FaultProject $ заменяется на $ safeprojectname $ .FaultContracts. $ Safeprojectname $ интерпретируется как литерал, а не параметр, которым он является.

Это несмотря на то, что в том же файле это работает точно так, как ожидалось:

<ProjectTemplateLink ProjectName="$safeprojectname$.FaultContracts">WCFFaultContract\FaultContract.vstemplate</ProjectTemplateLink>

Любые идеи будут полезны. Я полагаю, что мог бы написать класс IWizard, который бы делал это, но я бы предпочел избежать этого для такой простой функции, если это возможно.

В качестве альтернативы, если я смогу получить параметр, содержащий значение $ safeprojectname $ корневого шаблона, который также будет отвечать моим потребностям (в под-шаблонах $ safeprojectname $ заменяется на имя подпроекта, а не значение, которое он имел в корневом шаблоне).

10
задан Sean Worle 9 November 2011 в 22:40
поделиться