【问题标题】:is it possible to generate Visual Studio solution files using StylusStudio?是否可以使用 StylusStudio 生成 Visual Studio 解决方案文件?
【发布时间】:2009-07-13 23:16:14
【问题描述】:

我想知道是否可以生成某种模板,我在手写笔中提供 xml 或 xsl 文件并生成 c# 代码

我制作了一些 .cs 并且工作正常,但我无法使用 csproj 和 sln 文件,

所以,这就是我问的原因

我曾经在 c# 上编写 dll 是n层编程

【问题讨论】:

  • 你在说什么?为什么要使用 XML 工具而不是 VS 本身或像 cmake 或 premake 这样的元构建器来创建 sln 文件?也许编辑您的问题以解释理由以获得更好的答案。

标签: visual-studio projects-and-solutions solution


【解决方案1】:

Stylus Studio 包括 XSLT 和 XQuery,您可以使用其中任何一个编写文本文件。因此,如果您有正确的来源,您可以手动编写 .sln 文件 - 因为 .sln 文件不是 XML。项目文件,如 .vbproj.csproj,是 XML,可以通过 Stylus Studio 轻松创建。

这就是你要问的吗?

如果您有 XSLT 或 XQuery 程序,您可以选择生成代码来驱动该转换。它将为您创建一个 Visual Studio 项目。对于 XQuery,它将使用 .Net Saxon XQuery 引擎。对于 XSLT,支持 .Net 的多种不同 XSLT 引擎。

使用“XQuery > 生成代码 > 生成 C# 代码...”或“XSLT > 生成代码 > 生成 C# 代码...”选项来实际创建代码和伴随的 .sln 文件。

但是,如果出于某种原因您确实希望在 Stylus Studio 中使用 XSLT 创建 .sln 文件,您可以按照以下方式进行操作。

示例输入文件: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 看门狗 DB3FBB37-100C-40DD-B154-153E3F3A68FF

从上面的.xml 创建.sln 的示例XSLT 文件:

<?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>&#xD;&#xA;</xsl:text>
        <xsl:text>Microsoft Visual Studio Solution File, Format Version 10.00&#xD;&#xA;</xsl:text>
        <xsl:text># Visual Studio 2008&#xD;&#xA;</xsl:text>
        <xsl:apply-templates select="projects/project" mode="a"/>
        <xsl:text>Global&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(SolutionConfigurationPlatforms) = preSolution&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;Debug|Any CPU = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;Release|Any CPU = Release|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(ProjectConfigurationPlatforms) = postSolution&#xD;&#xA;</xsl:text>
        <xsl:apply-templates select="projects/project" mode="b"/>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;GlobalSection(SolutionProperties) = preSolution&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;HideSolutionNode = FALSE&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text>
        <xsl:text>EndGlobal&#xD;&#xA;</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>}"&#xD;&#xA;</xsl:text>
        <xsl:text>EndProject&#xD;&#xA;</xsl:text>
    </xsl:template>

    <xsl:template match="project" mode="b">
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Debug|Any CPU.ActiveCfg = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Debug|Any CPU.Build.0 = Debug|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Release|Any CPU.ActiveCfg = Release|Any CPU&#xD;&#xA;</xsl:text>
        <xsl:text>&#9;&#9;{</xsl:text>
        <xsl:value-of select="guid"/>
        <xsl:text>}.Release|Any CPU.Build.0 = Release|Any CPU&#xD;&#xA;</xsl:text>
    </xsl:template>
</xsl:stylesheet>

【讨论】:

    【解决方案2】:

    John is correct,您最好使用记事本,但如果您不想投资许可证,可以使用free version of Visual Studio 2008 创建多种类型的解决方案。如果您正在尝试进行模板驱动的代码生成,请查看CodeSmith

    【讨论】:

      【解决方案3】:

      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}” 结束项目

      【讨论】:

      • 我不确定 StylusStudio 是什么,但我相信 Visual Studio 解决方案文件是 XML 格式的。
      • @NotDan:你在考虑项目文件。
      【解决方案4】:

      答:使用 t4!

      Visual Studio 的 T4 代码生成 使用 Microsoft 的 T4 模板语言创建模板。

      问:我想为我的应用程序生成一些代码,Microsoft 有一个代码生成器 t4。

      A:Microsoft 有一个代码生成工具 T4,它代表 Text Transformation Templating Toolkit。

      T4 自带 Visual Studio 2008,如果你使用的是 VS 2005,也可以下载。

      【讨论】:

        猜你喜欢
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 2011-07-24
        • 1970-01-01
        相关资源
        最近更新 更多