是否可以使用StylusStudio生成Visual Studio解决方案文件?

时间:2009-07-13 23:16:14

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

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

我做了一些.cs并且工作正常,但我不能用csproj和sln文件,

所以,这就是我要问的原因

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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              

.sln上方创建.xml的示例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 :(得分:0)

Visual Studio解决方案文件不是XML,因此我不希望Stylus Studio对它们做很多事情。

解决方案文件的摘录:


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

答案 3 :(得分:0)

答:使用t4!

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

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

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

T4附带Visual Studio 2008,或者如果您使用的是VS 2005,则可以下载它。