Modifico una plantilla VS de proyectos múltiples (plantilla de proyecto de Visual Studio) y deseo establecer un parámetro personalizado en la plantilla raíz para ser utilizado por las plantillas secundarias . Sin embargo, quiero configurarlo en base a un parámetro existente.Cómo crear un parámetro personalizado evaluado en una VSTemplate
Así, por ejemplo, esto funciona bien:
<CustomParameter Name="$FaultProject$" Value="MyProject.FaultContracts"/>
La variable $ FaultProject $ se sustituye por MyProject.FaultContracts, como debe ser.
Esto, sin embargo, no funciona:
<CustomParameter Name="$FaultProject$" Value="$safeprojectname$.FaultContracts"/>
espero $ $ safeprojectname para ser sustituido por el valor correcto, pero no lo es. En cambio, la variable $ FaultProject $ se reemplaza por $ safeprojectname $ .FaultContracts. El $ safeprojectname $ se interpreta como un literal en lugar del parámetro que es.
Esto es a pesar del hecho de que en el mismo archivo, esto funciona exactamente como se esperaba:
<ProjectTemplateLink ProjectName="$safeprojectname$.FaultContracts">WCFFaultContract\FaultContract.vstemplate</ProjectTemplateLink>
Cualquier idea sería útil. Creo que podría escribir una clase de IWizard que hiciera esto, pero preferiría evitar eso para una función tan simple, si es posible.
Alternativamente, si puedo obtener un parámetro que contenga el valor del $ safeprojectname $ de la plantilla raíz, eso también cubriría mi necesidad (en las subpáginas, $ safeprojectname $ se cambia al nombre del subproyecto, no el valor que tenía en la plantilla raíz).
¿Alguna vez descubrió cómo resolver este problema? –
No, nunca encontré una buena respuesta. Parece que, como temía anteriormente, tendré que escribir una interfaz IWizard. Tendré que volver a consultarlo más adelante, ya que los plazos del proyecto han significado que solo editar los archivos del proyecto y la solución manualmente es más rápido que escribir la solución IWizard. Deseo eventualmente, ya que esto volverá a surgir (en primer lugar, el objetivo de las plantillas). Ojalá hubiera una solución que resolviera esto sin requerir que mi equipo tenga un código personalizado adicional en todas sus máquinas para poder trabajar, pero eso es lo que me queda. –