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

Visual studio 是否可以使用StylusStudio生成Visual Studio解决方案文件?,visual-studio,projects-and-solutions,solution,Visual Studio,Projects And Solutions,Solution,我想知道是否有可能生成某种模板,我用手写笔给它一个xml或xsl文件并生成c#代码 我制作了一些.cs文件,效果很好,但我无法使用csproj和sln文件 所以,这就是我问的原因 我曾经在c#上编程DLL 是一个n层编程Visual Studio解决方案文件不是XML,所以我不希望Stylus Studio对它们做太多的处理 解决方案文件的片段: Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio

我想知道是否有可能生成某种模板,我用手写笔给它一个xml或xsl文件并生成c#代码

我制作了一些.cs文件,效果很好,但我无法使用csproj和sln文件

所以,这就是我问的原因

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

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 Microsoft Visual Studio解决方案文件,格式版本10.00 #Visual Studio 2008 项目({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC})=“HttpsUrlWithPort”、“HttpsUrlWithPort\HttpsUrlWithPort.csproj”、“{9FD67B56-9D49-4989-89D0-06A29CAA5A3}” 末端工程 ,您最好使用记事本,但如果您不想投资许可证,可以使用记事本创建多种类型的解决方案。如果您试图进行模板驱动的代码生成,请看一看。

包括XSLT和XQuery,并且您可以使用其中任何一种编写文本文件。因此,如果有合适的源代码,您可以手动编写
.sln
文件,因为
.sln
文件不是XML。项目文件,如
.vbproj
.csproj
,都是XML,可以通过Stylus Studio轻松创建

这就是你要问的吗

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

使用“XQuery>生成代码>生成C#代码…”或“XSLT>生成代码>生成C#代码…”选项实际创建代码和助理.sln文件

但是,如果出于某种原因确实希望在StylusStudio内部使用XSLT创建.sln文件,那么下面是您可以使用的方法

示例输入文件: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 监察人 DB3B37-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>


;
Microsoft Visual Studio解决方案文件,格式版本10.00
;
#Visual Studio 2008
;
全球
;
	GlobalSection(SolutionConfigurationPlatform)=预解和xD
;
		Debug | Any CPU=Debug | Any CPU
;
		Release | Any CPU=Release | Any CPU
;
	EndGlobalSection
;
	GlobalSection(ProjectConfigurationPlatform)=后期解决方案和#xD
;
	EndGlobalSection
;
	全局剖分(SolutionProperties)=预解和#xD
;
		HideSolutionNode=FALSE
;
	EndGlobalSection
;
EndGlobal&xD
;
项目(“{”
}") = "
", "
\
.csproj“{
}“
;
;
EndProject
;
;
		{
}.Debug | Any CPU.ActiveCfg=Debug | Any CPU
;
;
		{
}.Debug | Any CPU.Build.0=Debug | Any CPU
;
;
		{
}.Release | Any CPU.ActiveCfg=Release | Any CPU
;
;
		{
}.Release | Any CPU.Build.0=Release | Any CPU
;
;
A:使用t4

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

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

答:微软有一个代码生成工具T4,它代表文本转换模板工具包


T4随Visual Studio 2008提供,如果您使用的是VS 2005,您也可以下载它。

我不确定StylusStudio是什么,但我相信Visual Studio解决方案文件是XML格式的。@NotDan:您正在考虑项目文件。您的目的是什么?为什么要使用XML工具而不是VS本身或me来创建sln文件像cmake或premake这样的助教构建者?也许可以编辑您的问题,以解释理由,从而获得更好的答案。