Stylus Studio enthält sowohl XSLT und XQuery, und mit jeder können Sie Textdateien schreiben. So können Sie manuell eine .sln
Datei schreiben, wenn Sie die richtige Quelle haben - weil .sln
Dateien nicht XML sind. Projektdateien, wie .vbproj
oder .csproj
, sind XML und können einfach mit Stylus Studio erstellt werden.
Sind Sie das, was Sie fragen?
Wenn Sie über ein XSLT- oder XQuery-Programm verfügen, können Sie Code zum Ausführen dieser Transformation generieren. Es wird ein Visual Studio-Projekt für Sie erstellen. Für XQuery wird die .Net Saxon XQuery-Engine verwendet. Für XSLT werden mehrere verschiedene XSLT-Engines für .Net unterstützt.
Verwenden Sie die Optionen "XQuery> Code generieren> C# -Code generieren ..." oder "XSLT> Code generieren> C# -Code generieren ...", um den Code und die begleitende Datei .sln
tatsächlich zu erstellen.
Wenn Sie jedoch aus irgendeinem Grund XSLT in Stylus Studio verwenden möchten, um eine .sln-Datei zu erstellen, gehen Sie folgendermaßen vor.
Beispieleingabedatei: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC Watchdog DB3FBB37-100C-40DD-B154-153E3F3A68FF
Beispiel XSLT-Datei .sln
von oben .xml
zu erstellen:
<?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>
Worauf erhalten Sie? Warum möchten Sie eine SLN-Datei mit einem XML-Tool anstelle von VS selbst oder einem Meta-Builder wie CMake oder Premake erstellen? Vielleicht bearbeiten Sie Ihre Frage, um die Gründe zu erklären, um bessere Antworten zu erhalten. – haffax