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