es posible generar archivos de solución de Visual Studio usando StylusStudio?
-
13-09-2019 - |
Pregunta
Me preguntaba si es posible generar algún tipo de plantilla que le doy un archivo XML o XSL en lápiz y generar código C #
i hecho algunos .cs y trabaja muy bien, pero no podía con los archivos csproj y sln,
Por lo tanto, es por eso que estoy pidiendo
i solía DLL en C # programar es una programación de n niveles
Solución
Stylus Studio incluye tanto XSLT y XQuery, y con cualquiera puede escribir archivos de texto. Para que pueda escribir manualmente un archivo .sln
, si usted tiene la fuente correcta - porque los archivos .sln
no son XML. Los archivos de proyecto, como .vbproj
o .csproj
, son XML y pueden ser fácilmente creados por Stylus Studio.
¿Eso es lo que están pidiendo?
Si usted tiene un programa XQuery o XSLT, se puede optar por generar código para conducir esa transformación. Se va a crear un proyecto de Visual Studio para usted. Para XQuery, utilizará el motor .Net Saxon XQuery. Para XSLT, varios motores XSLT diferentes para .Net son compatibles.
Utilice la opción "XQuery> Generar código> Generar código C # ..." o "XSLT> Generar código> Generar código C # ..." opciones para realmente crear el código y archivo .sln
operadora.
Sin embargo, si usted desea por alguna razón para usar XSLT interior de Stylus Studio para crear un archivo .sln, aquí es cómo se puede ir sobre ella.
archivo de entrada de la muestra: FAE04EC0-301F-11d3-BF4B-00C04F79EFBC Perro guardián DB3FBB37-100C-40DD-B154-153E3F3A68FF
archivo XSLT de ejemplo para crear .sln
desde arriba .xml
:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>
</xsl:text>
<xsl:text>Microsoft Visual Studio Solution File, Format Version 10.00
</xsl:text>
<xsl:text># Visual Studio 2008
</xsl:text>
<xsl:apply-templates select="projects/project" mode="a"/>
<xsl:text>Global
</xsl:text>
<xsl:text>	GlobalSection(SolutionConfigurationPlatforms) = preSolution
</xsl:text>
<xsl:text>		Debug|Any CPU = Debug|Any CPU
</xsl:text>
<xsl:text>		Release|Any CPU = Release|Any CPU
</xsl:text>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>	GlobalSection(ProjectConfigurationPlatforms) = postSolution
</xsl:text>
<xsl:apply-templates select="projects/project" mode="b"/>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>	GlobalSection(SolutionProperties) = preSolution
</xsl:text>
<xsl:text>		HideSolutionNode = FALSE
</xsl:text>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>EndGlobal
</xsl:text>
</xsl:template>
<xsl:template match="project" mode="a">
<xsl:text>Project("{"</xsl:text>
<xsl:value-of select="../guid"/>
<xsl:text>}") = "</xsl:text>
<xsl:value-of select="name"/>
<xsl:text>", "</xsl:text>
<xsl:value-of select="name"/>
<xsl:text>\</xsl:text>
<xsl:value-of select="name"/>
<xsl:text>.csproj", "{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}"
</xsl:text>
<xsl:text>EndProject
</xsl:text>
</xsl:template>
<xsl:template match="project" mode="b">
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Debug|Any CPU.Build.0 = Debug|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Release|Any CPU.ActiveCfg = Release|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Release|Any CPU.Build.0 = Release|Any CPU
</xsl:text>
</xsl:template>
</xsl:stylesheet>
Otros consejos
Juan es correcta , sería mejor usar el bloc de notas, pero hay un rel="nofollow versión gratuita de Visual Studio 2008 que se puede utilizar para crear muchos tipos de solución si no desea invertir en una licencia. Si usted está tratando de hacer con plantillas de generación de código, echar un vistazo a CodeSmith .
Los archivos de solución de Visual Studio no son XML, por lo que no se puede esperar Stylus Studio para hacer mucho con ellos.
De fragmentos de un archivo de solución:
Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpsUrlWithPort", "HttpsUrlWithPort\HttpsUrlWithPort.csproj", "{9FD67B56-9D49-4989-89D0-06A29ACAA5A3}" EndProject
R: Usa T4
Generación de código T4 de Visual Studio crear plantillas usando el lenguaje de plantillas T4 de Microsoft.
Q:. Quiero generar una parte del código para mi aplicación y Microsoft tiene un generador de código, t4
R: Microsoft tiene una herramienta T4 de generación de código que representa la transformación de texto Kit de herramientas de plantillas.
T4 viene con Visual Studio 2008, o se puede descargar si estás utilizando VS 2005.