Итак, я изменяю шаблон проекта VS Project (шаблон проекта 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 $заменяется на имя подпроекта, а не значение, которое оно имело в корневом шаблоне).