我想知道是否可以生成某种模板,我在手写笔中给出一个 xml 或 xsl 文件并生成 c# 代码
我做了一些 .cs 并且工作正常,但我不能使用 csproj 和 sln 文件,
所以,这就是我问的原因
我以前在 c# 上编程 dll 是一个 n 层编程
我想知道是否可以生成某种模板,我在手写笔中给出一个 xml 或 xsl 文件并生成 c# 代码
我做了一些 .cs 并且工作正常,但我不能使用 csproj 和 sln 文件,
所以,这就是我问的原因
我以前在 c# 上编程 dll 是一个 n 层编程
John 是对的,您最好使用记事本,但如果您不想投资许可证,可以使用Visual Studio 2008 的免费版本创建多种类型的解决方案。如果您尝试进行模板驱动的代码生成,请查看CodeSmith。
Stylus Studio包括 XSLT 和 XQuery,您可以使用其中任何一个编写文本文件。.sln
因此,如果您有正确的来源,您可以手动编写文件 - 因为.sln
文件不是 XML。项目文件,如.vbproj
或.csproj
,是 XML,可以通过 Stylus Studio 轻松创建。
这就是你要问的吗?
如果您有 XSLT 或 XQuery 程序,您可以选择生成代码来驱动该转换。它将为您创建一个 Visual Studio 项目。对于 XQuery,它将使用 .Net Saxon XQuery 引擎。对于 XSLT,支持 .Net 的几种不同 XSLT 引擎。
使用“XQuery > Generate Code > Generate C# Code...”或“XSLT > Generate Code > Generate C# Code...”选项来实际创建代码和伴随.sln
文件。
但是,如果出于某种原因您确实想在 Stylus Studio 中使用 XSLT 来创建 .sln 文件,那么您可以按照以下方式进行操作。
示例输入文件:FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 看门狗 DB3FBB37-100C-40DD-B154-153E3F3A68FF
.sln
从上面创建的示例 XSLT 文件.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>
Visual Studio 解决方案文件不是 XML,所以我不希望 Stylus Studio 对它们做太多事情。
解决方案文件的片段:
Microsoft Visual Studio 解决方案文件,格式版本 10.00 # 视觉工作室 2008 项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“HttpsUrlWithPort”,“HttpsUrlWithPort\HttpsUrlWithPort.csproj”,“{9FD67B56-9D49-4989-89D0-06A29ACAA5A3}” 结束项目
- 答:使用t4!
Visual Studio 的 T4 代码生成使用 Microsoft 的 T4 模板语言创建模板。
问:我想为我的应用程序生成一些代码,Microsoft 有一个代码生成器 t4。
答:Microsoft 有一个代码生成工具 T4,它代表 Text Transformation Templating Toolkit。
T4 附带 Visual Studio 2008,如果您使用的是 VS 2005,也可以下载它。